Ejecutar máquina virtual de VirtualBox al inicio de Windows

Por motivos que no vienen al caso tengo acceso a una PC que siempre esta encendida y en todo momento tiene una conexión a internet superior a la que la mayoría de nosotros tenemos en casa. Una máquina perfecta para montar un pequeño servidor casero que solo seria usado por mi y posiblemente un par de amigos y familiares.

El problema (como siempre, hay un problema) es que la PC no es mia, contiene información importante para terceros y para colmo, tiene que correr Windows. En un principio la solución fue fácil: montar una máquina virtual y en ella instalar mis servidores y demás experimentos, así me evitaria tener que lidiar con la seguridad del servidor en Windows y si algo sale mal seria tan sencillo como levantar una maquina virtual nueva. Sin embargo me encuentro con un segundo problema: no soy el unico que tiene acceso a esa PC, y me he encontrado con que cierran la ventana del VirtualBox o reinician la PC y mi servidor deja de funcionar.

Después de buscar un rato por la red, creo que la mejor forma de hacer esto es con un pequeño script batch,  que simplemente llamará a VirtualBox, para esto simplemente escribimos en un archivo de texto plano

#[directorioDeVirtualBox]\VBoxHeadless -startvm [nombreDeLaMaquina]
"C:\Program Files\Oracle\VirtualBox\VBoxHeadless" -startvm Arch
Y lo guardamos con extensión .bat, yo lo he nombrado "launch.bat".

Lo que hace esa única linea es iniciar la maquina con la utilidad VBoxHeadless, la cual nos permite iniciar una maquina virtual sin entorno gráfico.

Si deseamos detener la máquina virtual podemos hacerlo mediante otra utlidad llamada VBoxManage la cual nos permite controlar una máquina virtual en ejecución y se encuentra en el mismo directorio que VBoxHeadless. Para esto creamos otro archivo y escribimos:
#[directorioDeVirtualBox]\VBoxManage controlvm [nombreDeLaMaquina] poweroff
"C:\Program Files\Oracle\VirtualBox\VBoxManage" controlvm "Arch" poweroff
Ahora podemos ejecutar el primer script para iniciar la máquina virtual y el segundo para detenerla, solo tenemos un inconveniente, al ejecutarse el script que inicia VirtualBox se abrirá una ventana de la consola de Windows y si esta se cierra, la maquina virtual detiene su ejecución. Para solventar esto crearemos un tercer script, solo que esta vez sera en Visual Basic Script.

Creamos otro archivo de texto y en el escribiremos:
#Asegurate de cambiar launch.bat por el nombre que hayas elegido en el primer script que creamos.
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "launch.bat" & Chr(34), 0
Set WshShell = Nothing
Y lo guardaremos con extensión .vbs, yo lo he llamado start.vbs

Lo que hace el script es crear un objeto tipo shell, este objeto corre la aplicación que aparece entre comillas sin mostrar su ventana correspondiente (de ahi el número 0), y finalmente eliminar el objeto que habíamos creado.

Ahora solo resta agregar este último script al inicio del sistema, esto lo encuentran con una simple búsqueda en google.