如何在 windows 虚拟机上 运行 gui 应用程序?

How to run gui application on windows vm?

我在 Mac 上安装了 vagrant 和 virtual box。我已经创建了一个 Windows10 VM 并且它配置了 winrm。

我可以通过 vagrant 在 Windows 虚拟机上 运行 命令。但是我无法在 VM 上看到任何 GUI。

例如,如果我在 Windows VM 中打开命令提示符并发出命令 "start chrome.exe",它会启动 chrome 浏览器并显示浏览器 ui。但是,如果我通过 winrm vagrant winrm -c "start chrome.exe" 键入相同的命令,它会启动浏览器,但 ui 不会显示在 VM.Same 中,如果我通过 运行 命令通过 shell,则会出现问题]供应商。

有什么办法,我可以从 vagrant 运行 命令并且应用程序将在 VM 中以 GUI 模式启动?

Is there any way, I can run commands from vagrant and the application will be launched in GUI mode in VM?

没有

来自 https://msdn.microsoft.com/en-us/library/aa384426(v=vs.85).aspx :

You can use WinRM scripting objects, the WinRM command-line tool, or the Windows Remote Shell command line tool WinRS to obtain management data from local and remote computers ...

winrm 用于 远程管理 并且不转发 X window,所以不,你不能启动像 chrome 这样的程序并转发 UI 别处。

从您的虚拟机 运行 UI 编程的最佳选择:

  • 运行 来自 VM GUI(通过从 Vagrantfile 启用或从 VirtualBox 打开 VM)
  • 运行宁 vagrant rdp 登录虚拟机

最简单的方法是 运行 'GUI mode' 中的虚拟机(相对于 'headless')。 我使用 Oracle 的 VirtualBox,这是可以从 Vagrantfile 中轻松配置的选项之一。

查看我的 "Provider-specific configuration" 部分:

  # 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

当我的 VM 启动时,我会自动获得一个 GUI,它看起来就像我在启动常规 Windows 机器一样。 chrome 已经配置好这个盒子,很方便,但安装和使用它会很容易。

虽然您不能直接从 WinRM 运行 GUI 应用程序,但您也可以在 Windows 启动时向您的应用程序添加 link 这样您将确保应用程序在系统启动时 运行。

在您的配置脚本中添加以下内容:

mklink C:\Users\vagrant\AppData\Roaming\Microsoft\Windows\"Start Menu"\Programs\Startup\MyApp.link C:\MyApp\MyApp.exe
shutdown /r /t 1