![是否可以将 VMware 虚拟机作为 Windows 服务在后台自动启动,并在 Windows 关闭时优雅地关闭它?](https://linux22.com/image/1484528/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%B0%86%20VMware%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%BD%9C%E4%B8%BA%20Windows%20%E6%9C%8D%E5%8A%A1%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%87%AA%E5%8A%A8%E5%90%AF%E5%8A%A8%EF%BC%8C%E5%B9%B6%E5%9C%A8%20Windows%20%E5%85%B3%E9%97%AD%E6%97%B6%E4%BC%98%E9%9B%85%E5%9C%B0%E5%85%B3%E9%97%AD%E5%AE%83%EF%BC%9F.png)
主机是 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