是否可以将 VMware 虚拟机作为 Windows 服务在后台自动启动,并在 Windows 关闭时优雅地关闭它?

是否可以将 VMware 虚拟机作为 Windows 服务在后台自动启动,并在 Windows 关闭时优雅地关闭它?

主机是 Windows 7。我希望我的虚拟机可以在 Windows 后台启动,无需登录 Windows 并手动启动它。我还希望虚拟机可以在 Windows 关闭时优雅地关闭。

是否存在可以执行此操作的脚本/应用程序?

答案1

如果您使用的是 VMware Workstation,则可以将 VM 设为“共享 VM”,并将其配置为自动启动(在库中,右键单击“共享 VM”并选择“管理自动启动 VM”)。默认情况下,当主机关闭时,共享 VM 会硬关机。您可以通过编辑并将%PROGRAMDATA%\VMware\hostd\vmAutoStart.xml值更改stopActionGuestShutdown(或更改为,Suspend如果您希望暂停 VM)来更改此设置。更改此文件后,您需要重新启动 VMware Workstation Server 服务(并且在重新启动服务之前,您应该关闭所有正在运行的共享 VM)。

更新:在 Workstation Pro 14 中,上下文菜单项现在为“管理 VM 电源操作”,现在支持配置 VM 在主机关闭时自动挂起。

答案2

您也可以使用该vmrun命令。

您可以使用脚本启动虚拟机,例如:

vmrun -T ws start "F:\VMWare-VMs\S1.vmx"

并在 Windows 启动时添加脚本。

有关更多信息vmrun

答案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

相关内容