Virtualbox автозапуск виртуальной машины в windows

VirtualBox – отличная платформа виртуализации, но в ней совершенно не заложен механизм автозапуска виртуальных машин. Иногда критически необходимо автоматизировать запуск виртуальной машины. В качестве примера разберем автостарт виртуальной машины при запуске Windows. Это отлично пригодится для того, чтобы автоматически запускать виртуальные машины после аварийной перезагрузки.

Режимы запуска виртуальных машин в VBoxManage

VBoxManage – консольное приложение для управления виртуальными машинами.
По умолчанию, менеджер обычно находится в папке: C:\ProgramFiles\Oracle\VirtualBox\VBoxManage.exe
Для запуска машины необходимо отправить ему команду startvm "Имя машины" --type headless.
Режимы запуска:
gui — запуск виртуальной машины с окном графического интерфейса, режим по умолчанию.
headless — запуск виртуальной машины в фоновом режиме. Графический интерфейс, при необходимости, возможно открыть.
separate — тоже самое, что и headless, но графический интерфейс запускается в отдельном процессе. Это экспериментальная функция, в этом режиме не работает 3D ускорение.

Настройка автозапуска виртуальных машин

Запускаем Планировщик заданий, для Windows 10 проще всего запустить через комбинацию «Win+R», затем taskschd.msc.

Запуск планировщика задач

Создаем задачу для пользователя. Выбираем пункт «Выполнять только для пользователей, вошедших в систему» и — Настроить для Windows 10.

Задача для запуска

Далее настраиваем триггер. Лучше включить отложенный запуск, чтобы вход в систему полностью завершился.

Триггер

Затем настраиваем действие «Запуск программы». В аргументах к запуску указываем команду с именем виртуальной машины. startvm "Name VM" --type headless.

Запуск программы

На этом настройка задачи завершена.

Настройка автовхода в Windows 10

Скачиваем с сайта Microsoft программу Autologon.

Autologon

Вводим свой пароль и жмем «Enable». В отличии от включения автовхода через ручную правку реестра, эта утилита сохраняет пароль пользователя в зашифрованном виде.

Настройка автоматической блокировки Windows 10

Чтобы не оставлять компьютер разблокированным, настроим автоматическую блокировку сеанса.
Для этого опять открываем планировщик заданий Windows и добавляем действие в задание по запуску виртуальной машины. rundll32.exe user32.dll,LockWorkStation.

Запуск блокировки сеанса

Это действие должно находится после действия по запуску машины.

Задача в диспетчере задач

Не давал мне покоя один вопрос – как автоматически запускать в фоновом режиме виртуальную машину из VirtualBox 6.1-7.x в случае непредвиденного отключения света или перезагрузке ОС Windows при каких-либо сбоях?

Если вопрос автоматического запуска ПК после отключении света решился простой настройкой BIOS(а), то вот запуск виртуальной машины в фоновом режиме никак был мне не понятен.

Пользовался я до недавнего времени следующим вариантом автоматического запуска ВМ:

  1. В открытом окне VirtualBox жал на раздел “Машина” – “Создать ярлык на рабочем столе“.
  2. После, нажав на WIN+R, вводил shell:startup и переходил в каталог “C:\Users\Имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup“.
  3. В открытый каталог закидывал вновь созданный ярлык виртуальной машины.

Данный способ рабочий, но жутко раздражает открывающимся окном виртуальной машины. И в случае, если кто-то кроме вас пользуется ПК, то есть вероятность, что надоедливое окно, если не специально, то случайно – обязательно закроют. А машина должна работать 24/7. Отсюда и появился вопрос запуска ВМ в фоновом режиме после старта Windows 10.

В поиске мне попалось несколько вариантов фонового запуска с использованием сторонних разработок и программ. И описывать я их не буду. Ставить что-то еще на ПК мне, конечно же, не захотелось, поэтому поиски продолжились. И вот на каком-то из сайтов я все же нашел корректное описание автоматического запуска ВМ в фоновом режиме, коим и спешу поделиться с вами, да и оставлю заметку, чтобы самому не забыть.

Использовать для автоматического запуска ВМ в фоновом режиме мы будем часть первого описания в шапке, совместно с использованием не ярлыка, помещенного в автозагрузку, а *.bat файла. Данный *.bat файл будет запускать нашу ВМ именно в фоновом режиме сразу же после запуска ОС Windows.

Итак, поэтапно делаем следующие шаги:

  1. Идем в окно VirtualBox, выделяем необходимую виртуальную машину и жмем на раздел “Машина” – “Создать ярлык на рабочем столе“. Ярлык по умолчанию создается на рабочем столе.
  1. Жмем правой кнопкой мыши по вновь созданному ярлыку на рабочем столе и переходим в пункт Свойства
  1. В открывшемся окне свойств переходим на вкладку Ярлык и оттуда из поля Объект копируем значение в скобках { }. В нашем случае это {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c}
  1. Теперь нам необходимо открыть блокнот и в него вставить код ниже. Смотрите внимательно описание и скриншоты под пунктом. После вставки кода в блокнот и внесения всех необходимых изменений в соответствии со своей виртуальной машиной – жмем на Файл Сохранить как. Теперь нам осталось только в поле Тип файла: – указать Все файлы, а в поле Имя файла: – внести свое название и в конце добавить .bat, чтобы наш сохраненный файл стал исполняемым. Данный файл будет запускать нашу ВМ в фоновом режиме.
@echo off
cd C:\Program Files\Oracle\VirtualBox
VBoxManage.exe startvm {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c} --type headless
  • @echo on / off – включить / выключить режим отображения вводимых команд на экране.
  • cd C:\Program Files\Oracle\VirtualBox – переходит в каталог с установленной программой VirtualBox
  • VBoxManage.exe startvm {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c} –type headless – здесь у нас VBoxManage.exe из папки с программой VirtualBox запускает нашу ВМ с ранее скопированным идентификатором {6e860d8a-346e-4b4a-97ee-a1dc0a8b0a7c} (вы указываете соответственно свой) и параметр –type headless – указывает ВМ на запуск в фоновом режиме.
  1. Виртуальная машина через *.bat файл теперь у нас запускается в фоновом режиме – осталось дело за малым – поместить файл в автозагрузку при запуске ОС Windows. Жмем WIN+R, вводим shell:startup и жмем ОК. У нас откроется каталог автозагрузки программ, в который мы и скинем наш *.bat файл. Каталог находится по следующему пути: “C:\Users\Имя пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  1. Ну и чтобы все это дело проверить – перезагружаем ПК и проверяем запустилась ли наша ВМ в фоновом режиме. Проверить запуск ВМ можно будет в окне с программой VirtualBox, в диспетчере задач или любым другим из удобных способов известных вам. Если все пункты выполнены правильно – всё без проблем сработает.

Полный список различных вариантов запуска и управления виртуальной машиной на базе VirtualBox

Команды запуска виртуальной машины:

Запуск виртуальной машины с окном графического интерфейса. Это значение по умолчанию.

VBoxManage.exe startvm {57d9539c-a235-4fef-9232-530e7e7958cc} --type gui

Запуск виртуальной машины без окна только для удаленного отображения. Соответствует фоновому режиму.

VBoxManage.exe startvm {57d9539c-a235-4fef-9232-530e7e7958cc} --type headless

Запуск виртуальной машины с отсоединенным пользовательским интерфейсом. Технически это безголовая виртуальная машина с пользовательским интерфейсом в отдельном процессе. Это экспериментальная функция, поскольку в ней отсутствуют определенные функции, например ускорение 3D.

VBoxManage.exe startvm {57d9539c-a235-4fef-9232-530e7e7958cc} --type separate

Команды управления виртуальной машиной:

Временный перевод виртуальной машины в режим ожидания без постоянного изменения ее состояния. Окно виртуальной машины окрашено в серый цвет, что указывает на то, что в настоящее время виртуальная машина приостановлена. Это эквивалентно выбору пункта «Пауза» в меню «Машина» графического интерфейса.

VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} pause

Отмена предыдущей команды «Пауза». Это эквивалентно выбору пункта «Возобновить» в меню «Машина» графического интерфейса.

VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} resume

Перезагрузка виртуальной машины – команда равносильна нажатию кнопки Reset на реальном компьютере. Делается холодная перезагрузка виртуальной машины, которая сразу перезагружает ВМ и перезагружает гостевую операционную систему. Состояние ВМ заранее не сохраняется, и данные могут быть потеряны. Это эквивалентно выбору пункта «Сброс» в меню «Машина» графического интерфейса.

VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} reset

Отключение виртуальной машины сравнимое с отключением кабеля питания на реальном компьютере. Состояние ВМ заранее не сохраняется, и данные могут быть потеряны. Это эквивалентно выбору пункта «Закрыть» в меню «Машина» графического интерфейса или щелчку по кнопке закрытия окна виртуальной машины, а затем выбору «Выключить машину» в отображаемом диалоговом окне. После этого состояние виртуальной машины будет выключено. Из этого состояния его можно запустить снова командами запуска виртуальной машины, описанными выше.

VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} poweroff

Сохранение текущего состояния виртуальной машины на диск, а затем остановка виртуальной машины. Это эквивалентно выбору пункта «Закрыть» в меню «Машина» графического интерфейса или щелчку по кнопке закрытия окна виртуальной машины, а затем выбору «Сохранить состояние машины» в отображаемом диалоговом окне. После этого состояние ВМ будет сохранено. Из этого состояния его можно запустить снова командами запуска виртуальной машины, описанными выше.

VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} savestate

Отправка в виртуальной машине сигнал отключения ACPI, как если бы была нажата кнопка питания на реальном компьютере. Пока на виртуальной машине работает довольно современная гостевая операционная система, обеспечивающая поддержку ACPI, это должно вызвать надлежащий механизм завершения работы внутри виртуальной машины.

VBoxManage.exe controlvm {57d9539c-a235-4fef-9232-530e7e7958cc} acpipowerbutton

Надеюсь данная статья поможет сэкономить вам достаточно времени и нервов. Отблагодарить можно по ссылке СПАСИБО!

5
11
Голосов

Рейтинг записи

О себе:

Системное администрирование, подключение и настройка оборудования, планирование и монтаж локальных сетей, внедрение и настройка 1С Розница.

The truly most-consistent option is to use Task Scheduler.

Implementing the solution

This requires a couple of pretty easy steps, but I will explain them in detail to ensure anyone from any technical background can set this up:

  1. Identify your virtual machine name
  2. Create a task in Task Scheduler

1. Identify your virtual machine name

Navigate to C:\Users\YourUserNameHere\VirtualBox VMs

VirtualBox VMs Folder

The folder name above generally reflects the virtual machine name. You can confirm this by checking VirtualBox Manager itself:

VirtualBox GUI

The machine name is WindowsXPSP3.

2. Create a task in Task Scheduler

First click the start button and type «task scheduler» without the quotes. Then open the Task Scheduler:

Task Scheduler Search

Inside the task scheduler, we’re going to see a structure tree on the left side. Right-click on Task Scheduler Library. Left-click on New Folder...:

Task Scheduler New Folder

Name the folder something memorable, like User Custom and hit OK (if you already have an existing folder that you would prefer to use, that’s fine as well, skip to the next paragraph instead):

Name New Folder

Click your newly created folder, in my case User Custom, to highlight it. Right-click in the empty list to the right and Left-click on Create New Task...:

Create New Task

Now comes the tricky stuff. Follow my instructions verbatim. If you feel like downvoting because it didn’t work, or say «this didn’t work for me» in the comments, I’m betting you skipped a step here. Come back and try it again.

The Name and Description can be whatever you like, it is merely aesthetic and will not affect functionality. I’m going to name mine after my virtual machine and put a brief description. What IS important is that you choose Run whether user is logged on or not and Run with highest privileges:

Create Task: General

Switch to the Triggers tab at the top and Left-click New.... Switch the Begin the task: combination box to At Startup and then Left-click OK:

New Trigger

Switch to the Actions tab at the top and Left-click New.... Click browse (do not try to type this manually, you will cause yourself headaches) and navigate to C:\Program Files\Oracle\VirtualBox. Highlight VBoxManage.exe and Left-click Open:

Browse to VBoxManage

Copy everything except the executable and the quotation marks from Program/script: into Start in (optional)::

Copy Directory Path

Finally, put the following line into Add arguments (optional): and hit OK:

startvm "YourVirtualMachineNameFromStep1" --type headless

in my case, I will use:

startvm "WindowsXPSP3" --type headless

Enter Arguments

My Conditions tab is generally set to the following:

Conditions Tab

Make sure your Settings tab looks like the following, but absolutely ensure you have set the items marked in yellow to match mine. This will make sure that if some pre-requisite wasn’t ready yet that it will retry a few times to start the virtual machine and that the virtual machine won’t be terminated after 3 days. I would leave everything else as default unless you know what you are doing. If you don’t do what I show you here, and it ends up not working, it’s your problem:

Settings Tab

Finally, hit OK at the bottom of the Create Task window. You are done!

Testing the solution

Testing My Fake Scenario Above (and how you can test yours)

When I restart my computer, I can log in and open the VirtualBox Manager and see that my VM is running:

Running VM

I can also open Task Scheduler back up, and verify that it ran successfully, or see what the error was if it did not (most errors will be directory errors from people trying to manually enter where I told them not to):

Task Scheduler Success

Testing My Actual Use Case

On another machine, I set up my Linux Server as a virtual machine with it’s own raw solid-state hard drive. I wanted that Server to boot back up if the machine got restarted (crash, windows update, etc) automatically, without the user having to log in. I set that one up exactly as I described above and restarted that machine. I know it worked successfully because I was able to access my Samba share (laymens: a folder with stuff in it that I share over my network to my other computers) from another computer WITHOUT having first logged into the machine that runs the Server VM. This 100% confirms that it does start on system boot and not after the user logs in.

virtualbox_logoЕсть у одних моих клиентов хитрая программа, защита которой привязана к аппаратной части пк. Мы посадили эту программу на виртуальную машину virtualbox, а виртуалбокс установили на один из виндовых серверов. Все бы ничего, но при перезагрузке физического сервера приходилось логиниться на него, запускать виртуальную машину и оставлять все это добро работать в терминальной сессии. Неудобно.

Оказалось, что можно запросто организовать автоматический запуск виртуальных машин при загрузке сервера через VirtualboxVmService. Качаем программу отсюда http://sourceforge.net/projects/vboxvmservice/ Инсталлируем, чуть подправляем конфиг, перезагружаемся  — и все работает (в идеале).

Нюанс: у нас установлен Virtualbox устаревшей версии. При попытке старта созданной программой службы мы получили в логе VBoxVmService.log сообщение:

Error creating VirtualBox instance! rc = 0x80004002

Погуглил. Наткнулся на предложение обновить версию VirtualboxVmService в соответствии с версией самого виртуалбокса. Догадался, что у нас с точностью до наоборот: для старой версии виртуалбокса нужен старый VirtualboxVmService. Скачал устаревшую версию и все заработало с полпинка!


Документация на VirtualboxVmService.

На всякий случай приведу перевод документации текущей версии 4.1

##############################################################################
#
# ЧАСТЬ 1 — SETUP
#
##############################################################################

Шаг 1.
Убедитесь что Virtualbox установлен и ваши виртуальные машины могут стартовать с помощью менеджера virtualbox без каких либо проблем. Выключите виртуальные машины и закройте VirtualBox Manager.
ВАЖНО: Если вы хотите управлять вашей виртуальной машиной с помощью VRDP, Включите поддержку удаленного монитора в настройках display settings и определите соответствующий порт для каждой виртуальной машины индивидуально (т.е 3010 для Vm0, 3020 для Vm1, и т.д). Не используйте для этих целей стандартный порт 3389!

Шаг 2.
Скачайте и распакуйте последний релиз VBoxVmService в c:\vms.

Шаг 3
Откройте VBoxVmService.ini в любом текстовом редакторе и отредактируйте под ваши нужды. Этот файл содержит пример установки с двумя виртуальными машинами.

Ключ / Значение Описание
——————————————————————————
[Settings]
ServiceName=VBoxVmService Имя службы
RunAsUser=DomainName\UserName Имя пользователя под которым сервис будет стартовать. Процесс службы залогинится под этим пользователем. Если пользователь принадлежит к встроенному домену (т.е локальный) вы должны определить как .\UserName.
UserPassword=xxxxxxxx ДОЛЖЕН БЫТЬ ОПРЕДЕЛЕН! УСТАНОВИТЕ INI ФАЙЛУ ДОСТУП НА ЧТЕНИЕ ТОЛЬКО ДЛЯ ВАС И СИСТЕМЫ
VBOX_USER_HOME=C:\Users\YOUR_NAME_HERE\.VirtualBox Путь к дирректории .VirtualBox для вашего профиля. Она обычно располагается в персональной папке пользователя.
RunWebService=no Стартовать или нет VBoxWebSrv.exe, VirtualBox HTTP веб сервер автоматически. Может быть «yes» или «no». Оставьте ее в «no» если вы не знаете что это.
PauseShutdown=5000 Параметр используется для замедления выключения компьютера чтобы предотвратить крах виртуальной машины при выключении или перезагрузке. (5000=5 секунд) Заметте что Windows имеет ограниченя как долго контроллер сервиса будет ждать когда система перезагрузится. Лимит времени определен в переменной WaitToKillServiceTimeout в следующей ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Ваше значение PauseShutdown не должно превышать это значение в реестре.

[Vm0]
VmName=ubuntu Имя для запуска VM (Чуствительно к регистру!)
ShutdownMethod=savestate Метод выключения («savestate», или «acpipowerbutton»). Когда используется «savestate», состояние машины сохраняется и может быть возобновлено когда она старует в следующий раз. Когда используется «acpipowerbutton» , VM просто выключится. Если ваша VM долго выключается рекомендуется использовать savestate, который завершает намного быстрее.
AutoStart=yes Будет или нет VM стартовать автоматически когда VBoxVmService работает. По умолчанию установлено в «yes».

[Vm1]
VmName=winxp Как в можете видеть значения ниже почти повторяются для каждой [VmX]-секции файла
ShutdownMethod=acpipowerbutton
AutoStart=no Эта VM не будет стартовать автоматически.
##############################################################################
#
# ЧАСТЬ II — INSTALLATION
#
##############################################################################
Шаг 1. (для WINXP / SERVER2003) Запустите CMD (Командная строка) из вашего старт меню.
Шаг 1. (для VISTA / SERVER2008 / WIN7) Кликните правой кнопкой мыши по CMD (командная строка) и выберете «Запуск от имени администратора» в контекстном меню.
Step 2. Инсталируйте сервис. В терминальном окне наберите:
cd C:\vms [ENTER]

VmServiceControl.exe -i [ENTER]

Шаг 3. Перезагрузите вашу систему.
Если все сделано правильно, вы сможете подключиться к вашей VM с помощью VRDP клиента (или ssh клиента, если вы сконфигурировали ssh сервер внутри вашей VM). Если нет то обратитесь к секции TROUBLESHOOTING которая расположена ниже для отладки.
##############################################################################
#
# ЧАСТЬ III — UNINSTALL
#
##############################################################################

Шаг 1. (для WINXP / SERVER2003) Запустите CMD (Командная строка) из вашего старт меню.
Шаг 1. (для VISTA / SERVER2008 / WIN7) Кликните правой мышкой по CMD (Командная строка) и выберете «Run as Administrator» из контекстного меню.
Шаг 2.[/b] Остановите VBoxVmService сервис. Внутри терминального окна наберите:
cd C:\vms [ENTER]
VmServiceControl.exe -k [ENTER]
Замечание: вы можете также остановить сервис из консоли управления компьютером.
Шаг 3. Удалите сервис . продолжайте в терминальном окне набирать:
VmServiceControl.exe -u [ENTER]
Шаг 4. Удалите директорию с программой(В этом примере «c:\vms»).
Шаг 5. Вы удалили VBoxVmService из вашей системы.
##############################################################################
#
# ЧАСТЬ IV — TROUBLESHOOTING
#
##############################################################################

Если сервис не поднимает вашу VM как вы хотите, попробуйте следующее:
Осторожно перепроверьте настройки которые вы сделали в «VBoxVmService.ini».
Уменьшите количество ваших виртуальных машин до одной (= только [Settings] и секция [Vm0] в вашем ini файле) в вашем ini файле , для отладки
Переключитесь в командную строку, cd в VBoxVmService директорию и наберите:
VmServiceControl.exe -su 0 [ENTER]
чтобы поднять VM которую вы определили в секции [Vm0] файла «VBoxVmService.ini».
Если вы успешно подняли VM, вы увидите в диспетчере задач запущенный процесс «VBoxHeadless.exe» под определенным пользователем
Комманда:
VmServiceControl.exe -sd 0 [ENTER]
может быть использована для проверки вывода во время падения процесса[Vm0]. После этого, не должно быть запущенного «VBoxHeadless.exe» процесса. В дополнении, вы должны увидеть то что процесс «VBoxSVC.exe» завершится в скором времени после успешного завершения «VBoxHeadless.exe».
И команда:
VmServiceControl.exe -st 0 [ENTER]
может быть использована для проверки статуса целевой VM [Vm0].
Читайте лог файл!
Если вы видите «Could not find a registered machine named…», проверьте переменную среды VBOX_USER_HOME которая должна быть корректно установлена.
Если вы сделали ошибку в VBOX_USER_HOME, какбы то ни было, исправление ее в VBoxVmService.ini не достаточно. Потому что значения были записаны в переменные среды во время инсталляции. Вы должны открыть Панель управления->Система->Расширенные настройки системы->Дополнительно-Переменные среды, и пофиксить их здесь. Пожалуйста также убедитесь что VBOX_USER_HOMЕ установлена как системная переменная, а не как пользовательская.
После установки и каждый раз когда вы изменяете VBOX_USER_HOME, требеется перезагрузка системы для того чтобы VBoxVmService работал корректно.
Если проблема не устранена, опишите ее здесь на форуме, может кто и поможет.

I am running VirtualBox in Windows Server 2016. I want to start both VirtualBox and a VM within that when Windows boots. I have seen some posts about starting VirtualBox on Windows boot, but I have not gotten that to work. And even if I did, that would not autostart the VM. I feel there must be a way to do this, but hours of googling has not found the way.

Peter Mortensen's user avatar

asked Aug 31, 2017 at 1:31

Larry Martell's user avatar

Larry MartellLarry Martell

3,5466 gold badges40 silver badges76 bronze badges

1

I have an example of how to autostart a VirtualBox VM during Windows startup. I’m running Windows 10, but it shouldn’t be much different on Windows Server 2016.

The startup folder on my system is:

C:\Users\chriwill\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

In that folder I placed a batch file kubuntu.bat with following content:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm kubuntu --type headless

In my example the VM is named kubuntu. You’ll have to change it for your instance.

Addon:

If you need help finding the startup folder on your windows instance press keys Windows + R and enter shell:startup.

Reference: 8.19. VBoxManage startvm

Peter Mortensen's user avatar

answered Aug 31, 2017 at 1:39

Christian Will's user avatar

Christian WillChristian Will

1,5393 gold badges17 silver badges25 bronze badges

4

This worked for me.

  1. Create a shortcut.

    • Open VirtualBox
    • highlight the VM you want to startup
    • click «Machine» → «Create Shortcut on Desktop»
  2. Add to Windows startup

    • StartRun
    • type in «shell:startup»
    • copy & paste the shortcut in here.

Peter Mortensen's user avatar

answered Oct 23, 2019 at 18:06

Quang Van's user avatar

3

Oracle VirtualBox 6.1.16 supports automatic startup via a Windows service without third-party scripts or software. These were the steps I followed. Replace my login with yours throughout.

  1. Create a configuration file in C:\Users\Tim\.VirtualBox\autostart.properties:

    # Default policy is to deny starting a VM, the other option is "allow".
    default_policy = deny
    
    # Tim is allowed to start virtual machines but starting them
    # will be delayed for 10 seconds
    Tim = {
        allow = true
        startup_delay = 10
    }
    
  2. Add an environment variable for VBOXAUTOSTART_CONFIG and set it to C:\Users\Tim\.VirtualBox\autostart.properties.

  3. Create the autostart service from an administrative PowerShell window:

    cd "C:\Program Files\Oracle\VirtualBox"
    .\VBoxAutostartSvc.exe install --user=Tim
    .\VBoxManage.exe modifyvm "Peppermint x64" --autostart-enabled on
    
  4. Find the VirtualBox Autostart Service tim@tim-pc service from the Services application.

  5. Ensure the service login is your local login as configured above.

  6. Ensure that automatic startup is enabled.

  7. Start the service.

  8. Check for errors in the Windows Event Viewer application under application logs. Error descriptions are under the «Details» tab.

Peter Mortensen's user avatar

answered Apr 16, 2021 at 8:00

Timothy Matthews's user avatar

4

You can create a service for it by using NSSM. Example:

Open cmd

cd /d A:\programs\nssm-2.24\win64
nssm.exe install  kubuntu

Fill the forms:

# 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

Click Install service, and done.

Peter Mortensen's user avatar

answered Dec 21, 2019 at 1:54

Fangxing's user avatar

FangxingFangxing

5,7362 gold badges49 silver badges53 bronze badges

No. No. NOOOOOOOOO…
Have you ever heard about Task Scheduler??
That’s exactly what it is here for.

Startup folder?
This is not a great solution for so many reasons.
The startup folder often not reliable, and if something went wrong you can’t just check last run time, last state, etc…
Especially for this type of execution.


So let’s bring in a good, trustworthy solution:

  1. Open the Windows Task Scheduler.

  2. To organize the whole thing neatly, create a new Folder under «Task scheduler Library» called «VMs».

    (Or what ever you want to call it…)

  3. Navigate to the folder you made and press «Create Task»

  4. Name the Task

  5. Select «run whether user is logged in or not»

  6. Go to actions and press «New»

  7. Action: Start Program

  8. Program/Script: «C:\Program Files\Oracle\VirtualBox\VBoxManage.exe»

  9. Arguments: startvm your_vm_name —type headless

  10. now go to «Trigger» and press «New»

  11. choose System start and press ok

  12. Done

You can try the task by starting it out of the task scheduler via right-click.


So again, why use this instead of startup folder?
Startup folder works fine. But you MUST trust that everything is working fine as expected, and in enough cases it will just not, and you end up restarting your PC to try to fix it, etc… or in short it is just a huge PITA! :.)

Peter Mortensen's user avatar

answered Apr 10, 2022 at 23:57

Patrick Fleischer's user avatar

1

Scheduled task. Under actions, Program/scripts

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

Under Arguments

startvm Pihole --type headless

Pang's user avatar

Pang

9,623146 gold badges81 silver badges122 bronze badges

answered Jan 15, 2021 at 23:22

BRAD LANE's user avatar

BRAD LANEBRAD LANE

511 silver badge1 bronze badge

1

I needed a virtual machine running as a service—available from the network before user logged in first time—so fanxings’ answer was an almost ideal solution.

The problem was VBoxManage starts the virtual machine and then simply exits. So service manager tries to run it again. And again. And again…

I’ve worked around this with a small batch file:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm zztop --type headless
pause

This batch file was then installed as a service using nssm. This solved the problem with closing the virtual machine using the GUI—e.g. for changing configuration—and prevented multiple error messages from showing up in the system log.

Peter Mortensen's user avatar

answered May 7, 2020 at 16:57

tapiau's user avatar

There is a good choice to Add a Schedule Task. There is a plenty of options how it will warm up.

You can select run the task on startup regardless of user logins.

answered Jul 3, 2019 at 11:09

Abbas's user avatar

AbbasAbbas

5515 silver badges8 bronze badges

If you want to run the virtual machine even without logging in to the system, you can use the VBoxVmService utility which runs one or more VirtualBox machines in headless mode as Windows services and starts them automatically on boot.

Peter Mortensen's user avatar

answered Mar 12, 2021 at 10:07

Honza Vojtěch's user avatar

Honza VojtěchHonza Vojtěch

6951 gold badge7 silver badges27 bronze badges

  • Open C:\Users\userid\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup folder.
  • Create bat file and type C:\Users\userid\VirtualBox VMs\vmname\vmname.vbox.

Windows should know *.vbox file extension to open with VM VirtualBox.
You can set by use «open with» on vmname.vbox.

Wahyu Kristianto's user avatar

answered Mar 6, 2022 at 13:56

Erdoğan Gürel's user avatar

Two caveats for newbies like me when following official manual
(I tried both adding shortcut to shell:startup and Task Scheduler, but I didn’t succeed):

  1. make sure the user/password exists in Windows 10. A user without a password won’t install the service

    .\VBoxAutostartSvc.exe install --user=Tim
    
  2. Use netplwiz to solve Windows logon. Uncheck the box «Users must enter a user name and password to use this computer»

Finally, check again all «tim» was replaced when you copy the sample configuration file :-), I was stuck for hours to figure out why the configuration file couldn’t be parsed.

Peter Mortensen's user avatar

answered May 21, 2022 at 17:54

siyuluuu's user avatar

  • Virtualbox for windows 7 x64
  • Virtualbox windows xp черный экран
  • Virtualbox в фоновом режиме windows 10
  • Virtualbox drag and drop не работает windows 10
  • Virtualbox windows xp direct3d support