Назад | Перейти на главную страницу

подключение без графического интерфейса к локальной виртуальной машине Hyper-V без сети

У меня есть виртуальная машина в диспетчере Hyper-V (Windows 2008 R2) без сети, настроенной на виртуальной машине. Из сценария PowerShell, запущенного на главном сервере Windows, я хотел бы запросить в ОС этой локальной виртуальной машины определенную информацию (например, завершился ли данный процесс).

Я использую модуль pshyperv codeplex (https://pshyperv.codeplex.com/) для взаимодействия с диспетчером Hyper-V, но единственный командлет для подключения к виртуальной машине - это New-VMConnectSession, который запускает подключение vmconnect.exe к виртуальной машине. Поскольку vmconnect.exe по сути является RDP, он не очень удобен для сценариев.

Есть ли способ отправить команду в ОС локальной виртуальной машины и получить вывод из сценария PowerShell хоста, если на виртуальной машине не настроена сеть? (Я считаю, что утилита vmrun от Vmware имеет такую ​​возможность)

Другой способ задать этот вопрос: есть ли у Hyper-V форма vmconnect.exe без графического интерфейса?

(PS. Не уверен, было ли это большим переполнением стека или ошибкой сервера)

vmconnect позволяет клиенту подключаться к гипервизору. Он действительно использует протокол RDP, обычно с гипервизором, выступающим в роли «сервера». ВМ совершенно не осведомлена об этом взаимодействии, она просто видит VGA или подобное устройство. В более новых ОС, где и Hyper-V, и виртуальная машина поддерживают определенное расширение RDP через VMbus, клиент знает о соединении. Но даже в этом случае он обрабатывается не через «сетевое» соединение, а через гипервизор.

Не существует встроенных способов общения так, как вы хотите. Вы можете либо написать собственный драйвер VMbus, который обменивается данными от хоста к виртуальной машине по виртуальной шине Hyper-V; или используйте каналы с ворсом, привязанные к последовательным портам; но для обоих потребуется некоторые усилия.

В вашем комментарии говорится, что вы хотите иметь возможность запускать команды на виртуальной машине, но вам не нужен графический интерфейс.

Вы можете включить консоль EMS, если в качестве гостевой ОС используется какая-либо версия Windows Server. Это приведет к появлению консоли на одном из последовательных портов виртуальной машины. (Вы выбираете, какой именно.) Затем вы можете подключиться к нему с помощью PuTTY или другого эмулятора VT100. Оттуда вы можете запустить сеанс командного окна и запускать любые программы, которые вам нравятся. (Это, конечно, заставит вас войти в систему.)

Дополнительные сведения о включении консоли EMS см. В следующих статьях:

http://www.bing.com/search?q=enable+windows+ems+console&form=TMXHSB&mkt=en-us&scope=&pq=enable+windows+ems+console&sc=0-18&sp=-1&qs=n&sk=

Конечно, вы также можете сделать это, обновив свой хост до Server 2012 R2. Затем вы можете использовать Hyper-V для размещения файлов в виртуальной машине с помощью PowerShell на уровне размещения. Вы можете настроить периодическую задачу в гостевой системе, чтобы запускать все, что она там находит.