Estou executando um sistema operacional convidado do Ubuntu VM no modo sem cabeça em um host do Windows 7. Eu escrevi um script em lote que usa VBoxManage para iniciar ou salvar o estado da VM com base no argumento passado. Eu posso começar a VM muito bem colocando um atalho para o script na minha pasta de inicialização, mas estou tendo problemas para fazer com que a VM seja suspensa no logout.
Eu tentei alguns métodos diferentes:
VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code E_ACCESSDENIED (0x80070005) - General access denied error (extended info not available)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.
Existe alguma maneira melhor de suspender automaticamente o estado de uma VM ao fazer logoff do Windows?
O conteúdo do script em lote:
@echo off
setlocal
rem list of VMs to start/stop
set vm_list=Ubuntu
set action=%1
if not "%action%" == "start" if not "%action%" == "stop" exit /B
set command="C:\Program Files\Oracle\VirtualBox\VboxManage.exe"
set logfile="C:\bin\vm_log.txt"
if exist %logfile% echo.>> %logfile%
echo %date% %time%>> %logfile%
for %%A in (%vm_list%) do (
if "%action%" == "start" (
echo Starting %%A>> %logfile% 2>&1
%command% startvm %%A --type headless >> %logfile% 2>&1
) else if "%action%" == "stop" (
echo Suspending %%A>> %logfile% 2>&1
%command% controlvm %%A savestate >> %logfile% 2>&1
)
)
endlocal
Eu tenho a saída dos comandos redirecionados para vm_log.txt
, que é como eu posso ver as mensagens que foram relatadas.