在 windows 启动时启动 VirtualBox 和 VM
Start VirtualBox and VM in windows boot
我是 Windows Server 2016 中的 运行 VirtualBox。我想在 Windows 启动时同时启动 VirtualBox 和其中的 VM。我看过一些关于在 Windows 启动时启动 VB 的帖子,但我还没有让它工作。即使我这样做了,也不会自动启动虚拟机。我觉得一定有办法做到这一点,但数小时的谷歌搜索没有找到方法。
我有一个如何在 Windows 启动期间自动启动 VirtualBox VM 的示例。我是 运行 Windows 10,但在 Windows Server 2016 上应该没什么不同。
我系统上的启动文件夹是:
C:\Users\chriwill\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
我在该文件夹中放置了一个批处理文件 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
添加计划任务是个不错的选择。如何预热有很多选择。
无论用户是否登录,您都可以 select 运行 在启动时执行任务。
对我有用的是。
- 创建快捷方式。
- 打开虚拟机
- 突出显示要启动的 VM
- 单击 "Machine" -> "Create Shortcut on Desktop"
- 添加到windows启动
- 开始 -> 运行
- 输入"shell:startup"
- 在此处复制并粘贴快捷方式。
您可以使用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
点击安装服务,完成。
我需要一个虚拟机运行作为服务——在用户第一次登录之前从网络上可用——所以几乎是一个理想的解决方案。
问题是 VBoxManage 启动了虚拟机,然后就退出了。所以服务经理再次尝试 运行 它。然后再次。再一次……
我用一个小的批处理文件解决了这个问题:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm zztop --type headless
pause
此批处理文件随后使用 nssm
作为服务安装。这解决了使用 GUI 关闭虚拟机的问题——例如用于更改配置 - 并防止在系统日志中显示多条错误消息。
计划任务。在操作下,Program/scripts
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
争论不休
startvm Pihole --type headless
如果你想要 运行 虚拟机甚至不登录系统,你可以使用 VBoxVmService 实用程序,它 运行 一个或多个 virtualbox 机器处于无头模式Windows 服务并在启动时自动启动它们。
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
。
- 从管理 Powershell 创建自动启动服务:
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
服务。
- 确保服务登录名是您上面配置的本地登录名。
- 确保自动启动已启用。
- 启动服务。
- 在应用程序日志下检查 Windows
Event Viewer
应用程序中的错误。错误描述位于“详细信息”选项卡下。
解决方案:
如果不使用第三方包装器作为服务,就不可能完成您的要求(阅读:另一点故障)到您的系统。然而,您 可以 ,通过任务调度程序轻松地将其实现为任务,每次您的系统 boots/starts WILL 运行 之前 用户曾登录。
关于这方面的信息可以在我的回答中找到:
- 打开
C:\Users\userid\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
文件夹。
- 创建 bat 文件并输入
C:\Users\userid\VirtualBox VMs\vmname\vmname.vbox
。
Windows 应该知道 *.vbox
文件扩展名才能用 VM VirtualBox 打开。
您可以在 vmname.vbox
.
上使用“打开方式”进行设置
不不不不不……
你听说过任务计划程序吗???
这正是它的用途。
启动文件夹?
由于很多原因,这不是一个很好的解决方案。
启动文件夹通常不可靠,如果出现问题,您不能只检查上次 运行 时间、上次状态等...
特别是对于这种类型的执行。
所以让我们引入一个好的、值得信赖的解决方案:
- 打开 Windows 任务计划程序。
- 为了整齐地组织整个事情,在“任务计划程序库”下创建一个名为“VMs”的新文件夹。
(或者随便你怎么称呼它...)
- 导航到您创建的文件夹,然后按“创建任务”
- 为任务命名
- Select "运行 用户是否登录"
- 转到操作并按“新建”
- 操作:启动程序
- Program/Script: "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
- 参数:startvm your_vm_name --type headless
- 现在转到“触发器”并按“新建”
- 选择系统启动并按确定
- 完成
您可以通过 right-click 从任务计划程序启动它来尝试该任务。
享受
那么,为什么要使用这个而不是启动文件夹呢?
启动文件夹工作正常。但是您必须相信一切都按预期正常工作,并且在足够多的情况下它不会,您最终会重新启动您的电脑以尝试修复它等等......或者简而言之,这只是一个巨大的“痛苦” **!” :.)
希望我解释得足够好!
玩得开心 ;)
像我这样的新手在遵循官方手册时有两个注意事项,
(尝试将快捷方式添加到 shell:startup 和任务计划程序但没有成功)
1、确保user/passwd在Win 10中存在。没有密码的用户将无法安装服务
.\VBoxAutostartSvc.exe install --user=Tim
2、使用netplwiz解决win登录,取消勾选“用户必须输入用户名和密码才能使用这台计算机”
最后,再次检查复制示例配置文件时所有“tim”已被替换:-),我被困了几个小时才弄清楚为什么配置文件无法解析。
我是 Windows Server 2016 中的 运行 VirtualBox。我想在 Windows 启动时同时启动 VirtualBox 和其中的 VM。我看过一些关于在 Windows 启动时启动 VB 的帖子,但我还没有让它工作。即使我这样做了,也不会自动启动虚拟机。我觉得一定有办法做到这一点,但数小时的谷歌搜索没有找到方法。
我有一个如何在 Windows 启动期间自动启动 VirtualBox VM 的示例。我是 运行 Windows 10,但在 Windows Server 2016 上应该没什么不同。
我系统上的启动文件夹是:
C:\Users\chriwill\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
我在该文件夹中放置了一个批处理文件 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
添加计划任务是个不错的选择。如何预热有很多选择。
无论用户是否登录,您都可以 select 运行 在启动时执行任务。
对我有用的是。
- 创建快捷方式。
- 打开虚拟机
- 突出显示要启动的 VM
- 单击 "Machine" -> "Create Shortcut on Desktop"
- 添加到windows启动
- 开始 -> 运行
- 输入"shell:startup"
- 在此处复制并粘贴快捷方式。
您可以使用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
点击安装服务,完成。
我需要一个虚拟机运行作为服务——在用户第一次登录之前从网络上可用——所以
问题是 VBoxManage 启动了虚拟机,然后就退出了。所以服务经理再次尝试 运行 它。然后再次。再一次……
我用一个小的批处理文件解决了这个问题:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm zztop --type headless
pause
此批处理文件随后使用 nssm
作为服务安装。这解决了使用 GUI 关闭虚拟机的问题——例如用于更改配置 - 并防止在系统日志中显示多条错误消息。
计划任务。在操作下,Program/scripts
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
争论不休
startvm Pihole --type headless
如果你想要 运行 虚拟机甚至不登录系统,你可以使用 VBoxVmService 实用程序,它 运行 一个或多个 virtualbox 机器处于无头模式Windows 服务并在启动时自动启动它们。
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
。 - 从管理 Powershell 创建自动启动服务:
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
服务。 - 确保服务登录名是您上面配置的本地登录名。
- 确保自动启动已启用。
- 启动服务。
- 在应用程序日志下检查 Windows
Event Viewer
应用程序中的错误。错误描述位于“详细信息”选项卡下。
解决方案:
如果不使用第三方包装器作为服务,就不可能完成您的要求(阅读:另一点故障)到您的系统。然而,您 可以 ,通过任务调度程序轻松地将其实现为任务,每次您的系统 boots/starts WILL 运行 之前 用户曾登录。
关于这方面的信息可以在我的回答中找到:
- 打开
C:\Users\userid\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
文件夹。 - 创建 bat 文件并输入
C:\Users\userid\VirtualBox VMs\vmname\vmname.vbox
。
Windows 应该知道 *.vbox
文件扩展名才能用 VM VirtualBox 打开。
您可以在 vmname.vbox
.
不不不不不…… 你听说过任务计划程序吗??? 这正是它的用途。
启动文件夹? 由于很多原因,这不是一个很好的解决方案。 启动文件夹通常不可靠,如果出现问题,您不能只检查上次 运行 时间、上次状态等... 特别是对于这种类型的执行。
所以让我们引入一个好的、值得信赖的解决方案:
- 打开 Windows 任务计划程序。
- 为了整齐地组织整个事情,在“任务计划程序库”下创建一个名为“VMs”的新文件夹。
(或者随便你怎么称呼它...)
- 导航到您创建的文件夹,然后按“创建任务”
- 为任务命名
- Select "运行 用户是否登录"
- 转到操作并按“新建”
- 操作:启动程序
- Program/Script: "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
- 参数:startvm your_vm_name --type headless
- 现在转到“触发器”并按“新建”
- 选择系统启动并按确定
- 完成
您可以通过 right-click 从任务计划程序启动它来尝试该任务。
享受
那么,为什么要使用这个而不是启动文件夹呢? 启动文件夹工作正常。但是您必须相信一切都按预期正常工作,并且在足够多的情况下它不会,您最终会重新启动您的电脑以尝试修复它等等......或者简而言之,这只是一个巨大的“痛苦” **!” :.)
希望我解释得足够好! 玩得开心 ;)
像我这样的新手在遵循官方手册时有两个注意事项, (尝试将快捷方式添加到 shell:startup 和任务计划程序但没有成功)
1、确保user/passwd在Win 10中存在。没有密码的用户将无法安装服务
.\VBoxAutostartSvc.exe install --user=Tim
2、使用netplwiz解决win登录,取消勾选“用户必须输入用户名和密码才能使用这台计算机”
最后,再次检查复制示例配置文件时所有“tim”已被替换:-),我被困了几个小时才弄清楚为什么配置文件无法解析。