Как запустить приложение GUI на Windows VM?
Я установил бродячую и виртуальную коробку на моем Mac. Я создал виртуальную машину Windows10, и она настроена с WinRM.
Я могу запускать команды на Windows VM через Vagrant. Однако я не могу увидеть какой-либо графический интерфейс на виртуальной машине.
Например, если я открываю командную строку в виртуальной машине Windows и запускаю команду "start chrome.exe", запускается браузер Chrome, и отображается интерфейс браузера. Однако если я наберу ту же команду через winrm vagrant winrm -c "start chrome.exe"
, он запускает браузер, но пользовательский интерфейс не отображается в VM.Такая проблема возникает, если я запускаю команды через поставщика оболочки.
Есть ли способ, я могу запускать команды из vagrant и приложение будет запускаться в режиме GUI в ВМ?
2 ответа
Есть ли способ, я могу запускать команды из vagrant и приложение будет запускаться в режиме GUI в ВМ?
Нет.
С https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx:
Вы можете использовать объекты сценариев WinRM, средство командной строки WinRM или средство командной строки Windows Remote Shell WinRS для получения данных управления с локальных и удаленных компьютеров...
winrm используется для удаленного управления и не пересылает окно X, поэтому вы не можете запустить такую программу, как chrome, и переслать пользовательский интерфейс куда-либо еще.
Ваши лучшие варианты для запуска программы пользовательского интерфейса с вашей виртуальной машины:
- запуск из графического интерфейса виртуальной машины (либо путем включения из Vagrantfile, либо путем открытия виртуальной машины из VirtualBox)
- запуск vagrant rdp для входа в виртуальную машину
Проще всего запустить виртуальную машину в "режиме графического интерфейса" (в отличие от "безголового"). Я использую VirtualBox от Oracle, который является одним из вариантов, легко настраиваемых в вашем Vagrantfile.
Ознакомьтесь с моим разделом "Конфигурация для конкретного поставщика":
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# # (so we can run the browser)
vb.gui = true
vb.name = "windows10-eval"
# # Customize the amount of memory on the VM:
vb.memory = "2048"
end
Когда моя виртуальная машина загружается, я автоматически получаю графический интерфейс, который выглядит точно так же, как если бы я загружался с обычной машины Windows. Эта коробка удобно поставляется с уже подготовленным Chrome, но ее было бы легко установить и использовать.
Хотя вы не можете напрямую запустить приложение с графическим интерфейсом из WinRM, вы также можете добавить ссылку на свое приложение при запуске Windows, чтобы гарантировать, что приложение запускается при запуске системы.
Добавьте в свой сценарий подготовки следующее:
mklink C:\Users\vagrant\AppData\Roaming\Microsoft\Windows\"Start Menu"\Programs\Startup\MyApp.link C:\MyApp\\MyApp.exe
shutdown /r /t 1