使用 Vboxmanage guestcontrol 执行应用程序不会显示在来宾上

Executing an application with Vboxmanage guestcontrol does not display on guest

我想使用 VirtualBox vboxmanage 在许多来宾计算机上启动应用程序 执行测试。

在我的例子中,我有一台 Windows 主机和 Windows 台客户机。

使用 vboxmanage 确实会生成应用程序进程(实际上您可以在任务管理器上看到它)但是 不在访客屏幕上显示应用程序。

好像我的应用程序没有显示屏幕或有不同的屏幕...

是否可以使用 vboxmanage 显示应用程序? 我错过了什么?

谢谢

执行的命令示例:

"C:\Program Files\Oracle\Virtualbox\VBoxManage.exe" guestcontrol "Win64" --password pw --username admin run --exe c:\windows\system32\cmd.exe --putenv JAVA_PATH=c:\tests\jre -- cmd.exe/arg0 /C C:\tests\jre\bin\java.exe -jar c:\tests\sikulix -r c:\tests\test_app.sikuli

我设法在 Windows 来宾上启动了一个应用程序,并在屏幕上显示了该应用程序,所以我会 post 在这里如果有人需要类似的东西,我会怎么做。

在使用 only host network 设置虚拟机之后,为了能够从主机连接到来宾, 我使用psexec与客人互动如下:

psexec.exe \ipaddress -i 1 -u WORKGROUP\username -p password c:\path\to\my\application.exe -d

关于命令的一些注意事项:

  • -i 1 是允许与指定会话的桌面交互的选项
  • -d 可用于不等待进程终止
  • WORKGROUP\username注意指定工作组

为了在多个虚拟机上自动操作,您可以确定 ip 地址 解析此命令的结果:

"C:\Program Files\Oracle\Virtualbox\VBoxManage.exe" guestproperty enumerate vmname

或者您可以像下面这样在 guest 上解析 systeminfo 的结果:

"C:\Program Files\Oracle\Virtualbox\VBoxManage.exe" guestcontrol MyVMname run --username myusername --password my-password --wait-stdout --wait-stderr --exe "C:\Windows\System32\cmd.exe" -- cmd.exe/arg0 /C systeminfo