问题
我想运行自动启动“ 虚拟机(VM) ”,而无需“ Oracle VirtualBox(VBOX) ”“ 图形用户界面(GUI) ”具有“ Microsoft Windows(WIN) ”的本地DEV计算机。
如何在完全运行的后台进程中做到这一点?
解决方案
诀窍是在不使用GUI的情况下运行VM。这样,您也可以像服务一样在WIN服务器上轻松运行VM。
0)前提是存在一些VM,您已经有一些。在下面放上它的名称而不是{vm_name}。
1)首先,我们使用内置可执行文件“ VBoxHeadless.exe”。
建立档案
vm.run.bat
放置代码
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxHeadless.exe -s {vm_name} -v on
运行并测试它-WIN“ 命令行界面(CLI) ”,将被打开“ Command Shell ”,并且VM将在后台运行。
vm.run.bat
2)然后,使用“ 基于Windows的脚本宿主(WSCRIPT) “和语言” Microsoft Visual Basic脚本(VBS) ”并在文件“ vm.run.bat”上运行”。
建立档案
vm.run.vbs
放置代码
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("vm.run.bat", 0)
set WshShell = Nothing
运行并进行测试-CLI将在后台运行。
wscript.exe vm.run.vbs
参考
感谢iain
您可以使用VBoxManage启动无头的VM:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Your VM name" --type headless
我使用了类似于Samuel解决方案的方法,效果很好。
在桌面(或任何文件夹)上,右键单击并转到“新建”->“快捷方式”。
在目标中,键入:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm {uuid} --type headless
在名称中,键入所需的任何内容,然后单击“完成”。
然后,要停止同一虚拟机,请创建一个新的快捷方式,目标为:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm {uuid} poweroff
双击这些将启动和停止VM,而没有任何窗口保持打开状态。
从VirtualBox 4.2开始,您可以在启动vm的同时按住Shift完全在后台运行。查看详细信息 此处 。
另一种解决方案: http://vboxvmservice.sourceforge.net/
它对我来说很完美!
如果您不介意手动操作该应用程序,则以OS在后台运行为结束;以下是选项:
打开虚拟盒子。右键单击您的来宾操作系统>选择:无头启动。等待一段时间,直到操作系统启动。
然后关闭Virtual Box应用程序。
根据我的经验,Bruno Garett的回答:测试vm.run.bat
文件失败,给出一个只读错误,但在运行VB脚本时可以正常工作。只是为了节省任何人的时间。
同样,您也可以使用另一个批处理脚本来关闭程序,(Sam F的解决方案无法与Bruno的解决方案一起使用):
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxManage controlvm "Ubuntu Server" acpipowerbutton
第二行是从 此处 获得的,您可以使用所需的任何选项。