【发布时间】:2018-02-08 20:20:15
【问题描述】:
我在 Windows Server 2016 中运行 VirtualBox。我想在 Windows 启动时同时启动 VirtualBox 和其中的 VM。我看过一些关于在 Windows 启动时启动 VB 的帖子,但我还没有让它工作。即使我这样做了,也不会自动启动虚拟机。我觉得一定有办法做到这一点,但数小时的谷歌搜索还没有找到方法。
【问题讨论】:
标签: virtualbox windows-server-2016
我在 Windows Server 2016 中运行 VirtualBox。我想在 Windows 启动时同时启动 VirtualBox 和其中的 VM。我看过一些关于在 Windows 启动时启动 VB 的帖子,但我还没有让它工作。即使我这样做了,也不会自动启动虚拟机。我觉得一定有办法做到这一点,但数小时的谷歌搜索还没有找到方法。
【问题讨论】:
标签: virtualbox windows-server-2016
我有一个如何在 Windows 启动期间自动启动 VirtualBox VM 的示例。我运行的是 Windows 10,但在 Windows Server 2016 上应该不会有太大的不同。
我系统上的启动文件夹是:
C:\Users\chriwill\AppData\Roaming\Microsoft\Windows\开始菜单\程序\启动
在该文件夹中,我放置了一个批处理文件kubuntu.bat,其内容如下:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm kubuntu --type headless
在我的示例中,VM 被命名为 kubuntu。您必须为您的实例更改它。
插件:
如果您需要帮助来查找 Windows 实例上的启动文件夹,请按键 WINDOWS+R 并输入 shell:startup。
参考:https://www.virtualbox.org/manual/ch08.html#vboxmanage-startvm
【讨论】:
对我有用的是。
【讨论】:
Oracle VirtualBox 6.1.16 支持automatic startup via a windows service,无需第三方脚本或软件。这些是我遵循的步骤。在整个过程中将我的登录名替换为您的登录名。
C:\Users\Tim\.VirtualBox\autostart.properties 中创建配置文件:
# Default policy is to deny starting a VM, the other option is "allow".
default_policy = deny
# Bob is allowed to start virtual machines but starting them
# will be delayed for 10 seconds
Tim = {
allow = true
startup_delay = 10
}
VBOXAUTOSTART_CONFIG 添加环境变量并将其设置为C:\Users\Tim\.VirtualBox\autostart.properties。cd "C:\Program Files\Oracle\VirtualBox"
.\VBoxAutostartSvc.exe install --user=Tim
.\VBoxManage.exe modifyvm "Peppermint x64" --autostart-enabled on
Services 应用中找到VirtualBox Autostart Service tim@tim-pc 服务。Event Viewer 应用程序中的错误。错误说明位于“详细信息”标签下。【讨论】:
您可以使用NSSM为其创建服务,例如:
打开cmd
cd /d A:\programs\nssm-2.24\win64
nssm.exe install kubuntu
填写表格:
# Application Tab
Application Path: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
Startup directory: C:\Program Files\Oracle\VirtualBox
Arguments: startvm "kubuntu" --type headless
# Details Tab
Display name: kubuntu
点击安装服务,完成。
【讨论】:
我需要一个作为服务运行的虚拟机——在用户第一次登录之前就可以从网络获得——所以fanxings' answer 几乎是一个理想的解决方案。
问题是 VBoxManage 启动虚拟机,然后简单地退出。所以服务管理器尝试再次运行它。然后再次。又一次……
我用一个小批处理文件解决了这个问题:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm zztop --type headless
pause
该批处理文件随后使用nssm 作为服务安装。这解决了使用 GUI 关闭虚拟机的问题——例如用于更改配置,并防止在系统日志中显示多条错误消息。
【讨论】:
计划任务。在操作下,程序/脚本
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
根据参数
startvm Pihole --type headless
【讨论】:
如果不对您的系统使用第三方包装器(阅读:另一个故障点),就不可能做到您要求的服务。但是,您可以通过任务计划程序轻松地将其实现为任务,该任务计划程序将在您的系统每次启动/启动之前用户登录时运行在。
可以在我的回答中找到相关信息: https://stackoverflow.com/a/67305645/5387389
【讨论】:
添加计划任务是一个不错的选择。如何加热有很多选择。
无论用户登录如何,您都可以选择在启动时运行任务。
【讨论】:
如果您想在不登录系统的情况下运行虚拟机,您可以使用VBoxVmService 实用程序,该实用程序以无头模式将一台或多台虚拟机作为 Windows 服务运行,并在启动时自动启动它们。
【讨论】: