Вызов COM объекта расположенного на виртуальной машине, средствами Python.

Автор Doom, 21.07.23, 14:11:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Doom

Нашел инструменты для работы с виртуальными системами в VMware и VirtualBox - запустить и выключить а вот как "зайти" в них и запустить программы и работать с ними не могу найти.
Тестировщики работают через виртуалки и как у них это получается ?
Как программно зайти в активную виртуалку и дать команду запущенной программе и вернуть результат?


Doom

Нашел что настраивается localhost между машинами и далее

import clr
from System import Activator

# библиотеки управления программой myapp
sys.path.append('C:/myapp')

clr.AddReference('myapp_automate')
import myapp_automate

m_Session = Activator.GetObject(myapp_automate.Session, "http://127.0.0.1:4567/myapp_automate_Session")

Но что то идет не так - не хочет работать.
Я не могу понять как это может работать так как это два разных хоста ?

Sabahs писал что работает через виртуалки, но как - умолчал..

Doom

По сути клиент-серверное управление.
Но тут объединение хостов что наверное будет удобнее, но как настроить на виртуалке.

Doom

Оказалось не все приложения отображаются.

netstat -ano
netstat -a -o -n
netstat -b

Данный способ отпадает.


import psutil

p = psutil.Process(19420)

print(p.name())
#KOMPAS.Exe

p.connections()
# Out[5]: [] - список пуст

жизнь не программиста скажу я Вам - не сахар  :|


Doom

virtualbox предлагает инструменты ввода/вывода и подписку на события
https://www.virtualbox.org/sdkref/annotated.html

VMware:
VMDirectPath

Я так понимаю в любом случае придется писать обработчик внутри виртулаки..
Варьянт - socket/tsp/udp
Варьянт - обработчик через автозагрузку и стыковаться через общий буфер/общая сетевая папка.


Вы куда пропали p3452 ? Самое время потеребить Ваш волшебный горшочек :)

Doom

Цитата: Doom от 22.07.23, 18:35:55Самое время потеребить Ваш волшебный горшочек :)

Наверно горшочек прохудился, раз пропали :)

Городить виртуалки - даже из 2 систем - это ресурсоемкая затея. Интересно как устроено у VirusTotal - все антивирусы же не могут в одной системе находится или это особые версии написанные под заказ..

Если создавать хотя бы 10 поточную машину то там железо космическое будет - на каждую виртуалку надо отдельно ссд ставить.. мин 256 ГБ озу и мин 32 ядерный процессор.

Или как то совмещать версии программ что по сути не возможно без тотального хака..

Алексей Дубовицкий

Цитата: Doom от 24.07.23, 08:14:22Интересно как устроено
Про песочницы (sandbox) почитайте.

Цитата: Doom от 24.07.23, 08:14:22на каждую виртуалку надо отдельно ссд ставить..
Про промышленные системы виртуализации (например, VMWare vSphere) и системы хранения данных почитайте, нет необходимости в отдельных SSD.
+ Благодарностей: 1

Doom

Цитата: Алексей Дубовицкий от 24.07.23, 10:59:16Про песочницы (sandbox) почитайте.
Я не смог найти описание или вообще существует ли объект управления им?

Цитата: Алексей Дубовицкий от 24.07.23, 10:59:16Про промышленные системы виртуализации (например, VMWare vSphere) и системы хранения данных почитайте, нет необходимости в отдельных SSD.
Спасибо. Но она стоит хороших денег.

Алексей Дубовицкий

Цитата: Doom от 24.07.23, 13:42:39существует ли объект управления им?
Глубоко в тему не погружался, скорее всего, да.
ЦитироватьПесочница получает от другой системы безопасности запрос ..
источник
+ Благодарностей: 1

Doom

Цитата: Алексей Дубовицкий от 24.07.23, 15:18:48Глубоко в тему не погружался, скорее всего, да.
Цитата: Алексей Дубовицкий от 24.07.23, 15:18:48источник

Просмотрел и понял что любая попытка вернуть ответ из программы в sandbox во внешнюю среду перечит идеологии самой sandbox..

Он жестко привязывается к железу не так динамически как например у virtualbox.

Запустил его еще не чего не поделав он уже использует 2 ядра на максимум. 3.8 ГГц


В плане оптимизации ресурсов не проходит.