主机是 Windows 7。我希望我的虚拟机可以在 Windows 后台启动,无需登录 Windows 并手动启动它。我还希望虚拟机可以在 Windows 关闭时优雅地关闭。
是否存在可以执行此操作的脚本/应用程序?
答案1
如果您使用的是 VMware Workstation,则可以将 VM 设为“共享 VM”,并将其配置为自动启动(在库中,右键单击“共享 VM”并选择“管理自动启动 VM”)。默认情况下,当主机关闭时,共享 VM 会硬关机。您可以通过编辑并将%PROGRAMDATA%\VMware\hostd\vmAutoStart.xml
值更改stopAction
为GuestShutdown
(或更改为,Suspend
如果您希望暂停 VM)来更改此设置。更改此文件后,您需要重新启动 VMware Workstation Server 服务(并且在重新启动服务之前,您应该关闭所有正在运行的共享 VM)。
更新:在 Workstation Pro 14 中,上下文菜单项现在为“管理 VM 电源操作”,现在支持配置 VM 在主机关闭时自动挂起。
答案2
您也可以使用该vmrun
命令。
您可以使用脚本启动虚拟机,例如:
vmrun -T ws start "F:\VMWare-VMs\S1.vmx"
并在 Windows 启动时添加脚本。
答案3
我正在使用 VMware Workstation 15.5.2,并使用以下命令启动后台虚拟机:
vmrun start "C:\VMs\D10AMP\D10AMP.vmx" nogui
VM 在后台启动,且没有打开 VMware 窗口。
答案4
感谢scotty86 的方法,我只是提供了一种更优雅的VBS方法,当命令运行时不会打开cmd窗口。
将以下代码保存为vmrun.vbs
启动文件夹。
Set oShell = CreateObject ("Wscript.Shell")
Dim cmdStrs : cmdStrs = Array( _
"""C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"" start ""C:\Virtual Machines\Debian_10_01\Debian_10_01.vmx"" nogui", _
"""C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"" start ""C:\Virtual Machines\Debian_10_02\Debian_10_02.vmx"" nogui" _
)
For Each cmdStr In cmdStrs
oShell.Run cmdStr, 0, false
Next