Service “如何运行”;Oracle VirtualBox(VBOX)“;就像在完全后台启动后的服务”;微软视窗(WIN)“;?

Service “如何运行”;Oracle VirtualBox(VBOX)“;就像在完全后台启动后的服务”;微软视窗(WIN)“;?,service,virtualbox,virtualization,vbox,Service,Virtualbox,Virtualization,Vbox,问题 我想在带有“”的本地开发人员计算机上运行不带“”的autostart“” 如何在完全运行后台进程时做到这一点?解决方案 诀窍是在没有GUI的情况下运行VM。有了它,您也可以像服务一样轻松地在WIN服务器上运行VM 0)Prerequired是存在一些VM,您已经有了一些。下面将其名称改为{vm_name} 1) 首先,我们使用内置可执行文件“VBoxHeadless.exe” 创建文件 vm.run.bat vm.run.vbs 输入代码 cd "c:\Program Files\Or

问题

我想在带有“”的本地开发人员计算机上运行不带“”的autostart“”


如何在完全运行后台进程时做到这一点?

解决方案

诀窍是在没有GUI的情况下运行VM。有了它,您也可以像服务一样轻松地在WIN服务器上运行VM

0)Prerequired是存在一些VM,您已经有了一些。下面将其名称改为{vm_name}

1) 首先,我们使用内置可执行文件“VBoxHeadless.exe”

创建文件

vm.run.bat
vm.run.vbs
输入代码

cd "c:\Program Files\Oracle\VirtualBox\"
VBoxHeadless.exe -s {vm_name} -v on
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("vm.run.bat", 0)
set WshShell = Nothing
运行并测试它-名为“”的WIN将打开,VM将在后台运行

vm.run.bat
wscript.exe vm.run.vbs
2) 然后我们使用“”和语言“”,并在文件“vm.run.bat”上方运行

创建文件

vm.run.bat
vm.run.vbs
输入代码

cd "c:\Program Files\Oracle\VirtualBox\"
VBoxHeadless.exe -s {vm_name} -v on
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("vm.run.bat", 0)
set WshShell = Nothing
运行并测试它-CLI将在后台运行

vm.run.bat
wscript.exe vm.run.vbs
参考资料

多亏了伊恩


您可以使用VBoxManage启动VM headless:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "Your VM name" --type headless

我使用了类似于塞缪尔的解决方案,效果非常好

在桌面(或任何文件夹)上,右键单击并转到新建->快捷方式

在目标中,键入:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm {uuid} --type headless
在名称中,键入所需内容,然后单击“完成”

然后,要停止同一个vm,请创建一个新的快捷方式,目标为:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm {uuid} poweroff

双击这些启动和停止VM,而没有任何窗口保持打开状态。

按照Bruno Garett的回答,根据我的经验:测试
VM.run.bat
文件失败,出现只读错误,但运行VB脚本可以正常工作。只是为了节省任何人的时间

此外,要关闭headless,您可以使用另一个批处理脚本(Sam F的解决方案与Bruno的解决方案不兼容):


第二行是从中获得的,您可以使用任何您想要的选项。

替代解决方案:


它非常适合我

VirtualBox 4.2开始,您可以在启动vm时按住Shift,在后台完全运行它。请参阅详细信息。

如果您不介意手动操作应用程序一次,以在后台运行操作系统结束;以下是选项:

打开虚拟盒。 右键单击来宾操作系统>选择:无头启动。 等待一段时间,直到操作系统启动


然后关闭Virtual Box应用程序。

GUI中也有一个简单的手动选项:


(摘自Virtualbox 5.2)

真正一致的选择是使用任务调度器

实施解决方案 这需要几个非常简单的步骤,但我将详细解释这些步骤,以确保任何具有任何技术背景的人都可以进行设置:

  • 识别您的虚拟机名称
  • 在任务计划程序中创建任务
  • 1.识别您的虚拟机名称 导航到
    C:\Users\YourUserNameHere\VirtualBox VMs

    上面的文件夹名称通常反映虚拟机名称。您可以通过检查VirtualBox Manager本身来确认这一点:

    机器名为
    WindowsXPSP3

    2.在任务计划程序中创建任务 首先单击开始按钮并键入不带引号的“任务调度器”。然后打开任务计划程序:

    在任务调度器中,我们将在左侧看到一个结构树。右键单击任务计划程序库。左键单击新文件夹…:

    将文件夹命名为值得记忆的名称,如
    User Custom
    ,然后点击OK(如果您已经有一个您喜欢使用的现有文件夹,也可以,请跳到下一段):

    单击新创建的文件夹(在我的示例中为“用户自定义”)以突出显示它。右键单击右侧的空列表,然后左键单击
    创建新任务…

    现在是棘手的事情。按照我的指示一字不差地做如果你因为它不起作用而想投否决票,或者在评论中说“这对我不起作用”,我打赌你跳过了这里的一步。回来再试一次

    名称
    说明
    可以是您喜欢的任何内容,它只是美观而已,不会影响功能。我将以我的虚拟机命名我的虚拟机,并做一个简短的描述。重要的是,无论用户是否登录,您都要选择
    运行
    ,并选择
    以最高权限运行

    切换到顶部的
    触发器
    选项卡,然后左键单击
    新建…
    。在启动时将
    开始任务:
    组合框切换到
    ,然后左键单击确定:

    切换到顶部的
    Actions
    选项卡,然后左键单击
    New…
    。单击浏览(不要手动输入,这样会让你头疼)并导航到
    C:\Program Files\Oracle\VirtualBox
    。突出显示
    VBoxManage.exe
    ,然后左键单击
    Open

    将可执行文件和引号从
    程序/脚本:
    复制到
    起始位置(可选):

    最后,将以下行放入
    添加参数(可选):
    并点击OK:

    startvm“YourVirtualMachineNameFromsStep1”--键入headless

    在我的情况下,我将使用:

    startvm“WindowsXPSP3”--键入headless

    My
    Conditions
    选项卡通常设置为以下内容:

    确保您的
    设置
    选项卡如下所示,但绝对确保您已将标记为黄色的项目设置为与我的项目匹配。这将确保如果某些先决条件尚未准备好,它将重试几次以启动虚拟机,并且虚拟机不会在3天后终止。除非你知道自己在做什么,否则我会把其他一切都作为默认设置。如果你不做什么