Please make a note of the VirtualBox installation directory (by default, C:\Program Files\Oracle\VirtualBox) as this will be used in subsequent steps.

Next, if necessary, configure your VirtualBox VM for remote access via RDP. Start VirtualBox, highlight your VM in the list and choose Machine > Settings. Select Display on the left and move over to the Remote Display tab.
Check the Enable Server box and enter a port number in the Server Port field. We recommend using a number between 7000 and 8000 and we have used 7070 in our setup.

where <VIRTUAL-MACHINE_NAME> is the name of the VirtualBox VM you would like to start automatically.
We have specified Win8DevPreview.

Note: VirtualBox user Jesse Connor prefers to start his VM using its unique identifier (UUID).
He specifies arguments -s <UUID> instead, where <UUID> is the identifier for his VM found by running command Vboxmanage.exe list vms.

In the Name field, enter the name that you will call the application in AlwaysUp.
We have used Win8DevPreview VM but you can specify virtually anything you like.

Click over to the Logon tab:

Enter the user name and password of the account in which you installed and run VirtualBox.
Your VM will run in this account so that it can find its settings.

Click over to the Startup tab and check the Ensure that the Windows Networking components have started box.
This informs AlwaysUp that VirtualBox needs the TCP/IP networking stack to operate.

Move to the Extras tab and:

Check the Use this special command to stop the application box.
Specify the full path to the VBoxManage.exe application along with a few arguments:

Note: VirtualBox user Jesse Connor prefers use the ACPI shutdown instead of the recommended savestate because his Linux boxes don't seem to recover smoothly from saved states.
He specifies C:\Program Files\Oracle\VirtualBox\Vboxmanage.exe controlvm <UUID> acpipowerbutton instead, where <UUID> is the identifier for his VM
found by running command Vboxmanage.exe list vms.

Check the Wait for up to: box and enter 30 in the accompanying field. This informs AlwaysUp to wait for up to 30 seconds for VirtualBox to exit properly before forcibly closing it.

Click the Save >> button. In a couple of seconds, an application called Win8DevPreview VM will show up in the AlwaysUp window.
It is not yet running though.

To start the VirtualBox VM, choose Application > Start "Win8DevPreview VM" (your application name will be different!).
After starting, we connected via RDP ( at localhost:7070) to confirm that the VM is running properly.

Note @ 2/21/2016: Even though your VM is running, the VirtualBox Manager window may still show the VM as "Powered Off". We saw this strange behavior when testing VirtualBox Version 5.0.14 r105127.
Thankfully the incorrect staus didn't seem to have any effect on our running VM and we were able to connect to it without a problem.

That's it! Next time your computer boots, your VirtualBox VM will start up immediately, before anyone logs on.
We encourage you to edit your application in AlwaysUp and check out the many other settings that may be appropriate for your environment.

VirtualBox not working properly as a Windows Service?

Visit the AlwaysUp Troubleshooter - our online tool that can help you resolve the most common problems encountered when
running an application as a windows service.