在Windows启动中启动VirtualBox和VM

Lar*_*ell 2 virtualbox windows-server-2016

我在Windows Server 2016中运行VirtualBox.我想在Windows启动时启动VirtualBox和VM.我已经看到一些关于在Windows启动时启动VB的帖子,但我没有得到它的工作.即使我这样做了,也不会自动启动VM.我觉得必须有办法做到这一点,但几个小时的谷歌搜索还没有找到方法.

Chr*_*ill 15

我有一个如何在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
Run Code Online (Sandbox Code Playgroud)

在我的示例中,VM被命名kubuntu.您必须为您的实例更改它.

添加在:

如果您需要帮助在Windows实例上找到启动文件夹,请按键WINDOWS+R并输入shell:startup.

参考:https://www.virtualbox.org/manual/ch08.html#vboxmanage-startvm

  • 这会在用户“chriwill”登录时启动虚拟机,而不是按照要求启动时启动,也不会在其他用户登录时启动。您需要的是一个作为服务运行的解决方案(请在下面查看投票较少的答案)(以及是的,我知道我正在评论 5 年前的事情)。 (5认同)
  • 当 Windows 关闭或重新启动时,VM 是否正常关闭? (2认同)
  • 虽然在用户登录后使用批处理文件执行此操作是可以接受的,但它永远无法在启动时实现它,这就是这个问题所要求的。有关正确的解决方案,请参阅下面的答案:/sf/answers/4711414081/ (2认同)

Qua*_*Van 11

对我有用的是。

  1. 创建快捷方式。
    • 打开虚拟机
    • 突出显示要启动的 VM
    • 单击“机器”->“在桌面上创建快捷方式”
  2. 添加到windows启动
    • 开始 -> 运行
    • 输入“外壳:启动”
    • 在此处复制和粘贴快捷方式。


fan*_*ing 8

您可以使用NSSM为其创建服务,例如:

打开cmd

cd /d A:\programs\nssm-2.24\win64 
nssm.exe install  kubuntu
Run Code Online (Sandbox Code Playgroud)

填写表格:

# 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
Run Code Online (Sandbox Code Playgroud)

单击安装服务,完成。


小智 8

不。不。NOOOOOOOOO...
\n您听说过任务计划程序吗?
\n这正是它的用途。

\n

启动文件夹?
\n由于多种原因,这不是一个很好的解决方案。\n启动文件夹通常不可靠,如果出现问题,您不能只检查上次运行时间、上次状态等\xe2\x80\xa6\n特别是对于此执行类型。

\n
\n

因此,让我们引入一个好的、值得信赖的解决方案:

\n
    \n
  1. 打开 Windows 任务计划程序。

    \n
  2. \n
  3. 为了整齐地组织整个事情,请在“任务计划程序库”下创建一个名为“VMs”的新文件夹。

    \n

    (或者你想怎么称呼它......)

    \n
  4. \n
  5. 导航到您创建的文件夹,然后按“创建任务”

    \n
  6. \n
  7. 为任务命名

    \n
  8. \n
  9. 选择“无论用户是否登录都运行”

    \n
  10. \n
  11. 转到操作并按“新建”

    \n
  12. \n
  13. 行动:启动程序

    \n
  14. \n
  15. 程序/脚本:“C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe”

    \n
  16. \n
  17. 参数:startvm your_vm_name --type headless

    \n
  18. \n
  19. 现在转到“触发器”并按“新建”

    \n
  20. \n
  21. 选择系统启动并按确定

    \n
  22. \n
  23. 完毕

    \n
  24. \n
\n

您可以通过右键单击从任务计划程序中启动该任务来尝试该任务。

\n
\n

那么,为什么要使用它而不是启动文件夹呢?\n启动文件夹工作正常。但你必须相信一切都按预期工作正常,而且在足够多的情况下它不会,你最终会重新启动你的电脑来尝试修复它,等等......或者简而言之,它只是一个巨大的 PITA!:.)

\n


小智 6

预定任务。在操作、程序/脚本下

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
Run Code Online (Sandbox Code Playgroud)

争论中

startvm Pihole --type headless
Run Code Online (Sandbox Code Playgroud)


Tim*_*ews 6

Oracle VirtualBox 6.1.16 支持通过 Windows 服务自动启动,无需第三方脚本或软件。这些是我遵循的步骤。在整个过程中将我的登录名替换为您的登录名。

  1. 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
    }
    
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为其添加环境变量VBOXAUTOSTART_CONFIG并将其设置为C:\Users\Tim\.VirtualBox\autostart.properties.
  3. 从管理 Powershell 创建自动启动服务:
    cd "C:\Program Files\Oracle\VirtualBox"
    .\VBoxAutostartSvc.exe install --user=Tim
    .\VBoxManage.exe modifyvm "Peppermint x64" --autostart-enabled on
    
    Run Code Online (Sandbox Code Playgroud)
  4. VirtualBox Autostart Service tim@tim-pcServices应用程序中查找服务。
  5. 确保服务登录是您上面配置的本地登录。
  6. 确保已启用自动启动。
  7. 启动服务。
  8. Event Viewer在应用程序日志下检查 Windows应用程序中的错误。错误描述位于“详细信息”选项卡下。

  • 补充一点:我无法启动该服务,它抛出“错误 31 - 连接到系统的设备无法运行”。解决方案:在 autostart.properties 中,文件末尾*必须*有一个空换行符。 (3认同)

Dee*_*ayh 5

解决方案:

如果不使用第三方包装器(阅读:另一个故障点)到您的系统,就不可能完成您所要求的服务。但是,您可以通过任务计划程序轻松地将其实现为任务,该任务计划程序在用户登录之前每次系统引导/启动时运行。

有关信息可以在我的答案中找到: 如何在完全后台“Microsoft Windows (WIN)”启动后像服务一样运行“Oracle VirtualBox (VBOX)”?