在windows启动中启动VirtualBox和VM

在windows启动中启动VirtualBox和VM,virtualbox,windows-server-2016,Virtualbox,Windows Server 2016,我正在Windows Server 2016中运行VirtualBox。我想在Windows启动时启动VirtualBox和其中的VM。我看过一些关于在Windows boot上启动VB的帖子,但我还没有让它起作用。即使我这样做了,也不会自动启动虚拟机。我觉得一定有办法做到这一点,但几个小时的谷歌搜索还没有找到办法 我举了一个例子,说明如何在Windows启动期间自动启动VirtualBox VM。我正在运行Windows 10,但在Windows Server 2016上应该不会有太大的不同

我正在Windows Server 2016中运行VirtualBox。我想在Windows启动时启动VirtualBox和其中的VM。我看过一些关于在Windows boot上启动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


参考资料:

添加计划任务是一个不错的选择。有很多选项可以选择如何热身


您可以选择在启动时运行任务,而不考虑用户登录。

对我有用的是什么

  • 创建一个快捷方式。
    • 开放虚拟箱
    • 突出显示要启动的VM
    • 单击“机器”->“在桌面上创建快捷方式”
  • 添加到windows启动
    • 开始->运行
    • 输入“shell:startup”
    • 在此处复制并粘贴快捷方式

  • 您可以使用exmaple为其创建服务:

    打开命令

    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--键入headless
    暂停
    

    然后使用
    nssm
    将此批处理文件作为服务安装。这解决了使用GUI关闭虚拟机的问题,例如更改配置,并防止多条错误消息显示在系统日志中。

    计划任务。在操作、程序/脚本下

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
    
    争论中

    startvm Pihole --type headless
    

    如果您想在不登录系统的情况下运行虚拟机,可以使用该实用程序,以无头模式作为Windows服务运行一台或多台virtualbox计算机,并在引导时自动启动它们。

    Oracle virtualbox 6.1.16不支持第三方脚本或软件。这就是我遵循的步骤。将我的登录名替换为你的登录名

  • 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\u CONFIG
    添加一个环境变量,并将其设置为
    C:\Users\Tim\.VirtualBox\autostart.properties
  • 从管理Powershell创建autostart服务:
    cd "C:\Program Files\Oracle\VirtualBox"
    .\VBoxAutostartSvc.exe install --user=Tim
    .\VBoxManage.exe modifyvm "Peppermint x64" --autostart-enabled on
    
  • 查找
    VirtualBox Autostart服务tim@tim-电脑
    服务应用程序提供的服务
  • 确保服务登录名是您的本地登录名,如上所述
  • 确保已启用自动启动
  • 启动服务
  • 在应用程序日志下的Windows
    事件查看器
    应用程序中检查错误。错误描述在“详细信息”选项卡下
  • 解决方案: 如果不对系统使用第三方包装(阅读:另一个故障点),则无法将您要求的作为服务来执行。但是,您可以通过任务调度器轻松地将其作为任务执行,该任务调度器将在用户登录之前每次启动系统时运行

    我的回答如下:

    当Windows关闭或重新启动时,VM是否正确关闭?我发现当我正确跳出或杀死主机盒时,VM将正确关闭(嘿,这是两个词),是的。主要的障碍是在引导之后(重新)启动。虽然在用户登录后使用批处理文件进行启动是可以接受的,但它永远无法在引导时实现,这就是这个问题所要问的。有关正确的解决方案,请参见以下答案: