Sur la base de l'exemple de script ".ps1" (script Windows PowerShell) ci-dessus, j'ai écrit un fichier de script régulier ".bat" pour changer l'heure à laquelle démarre la machine virtuelle de VirtualBox.
L'heure de démarrage souhaitée est définie dans la variable "TEMPO_START_TIMESTAMP" au format époque. Vous pouvez obtenir l'équivalent de votre heure de démarrage souhaitée en époh à l'adresse "http://www.timestampconvert.com/".
Le nom de la machine virtuelle de VirtualBox à démarrer est nécessaire dans la variable "NOM" (même nomenclature utilisée dans le script ".ps1" ci-dessus).
echo off
echo %time%
set NOM="Windows_7_x64"
set TEMPO_CS_2_MS=0
set TEMPO_S_2_MS=000
rem # Démarre toujours la machine virtuelle à la date 07/11/2014 - 11h58
rem http://www.timestampconvert.com/
set TEMPO_START_TIMESTAMP=1415361480
for /f "delims=" %%x in ('cscript /nologo toEpoch.vbs') do set epoch=%%x
rem %epoch%
set TEMPO_CURRENT_TIMESTAMP=%epoch%
rem set TEMPO_CURRENT_TIMESTAMP=1544518714
set /A TEMPO_TEMP=(%TEMPO_START_TIMESTAMP%-%TEMPO_CURRENT_TIMESTAMP%)
call set TEMPO=%TEMPO_TEMP%%TEMPO_S_2_MS%
rem %TEMPO_TEMP%
rem %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage setextradata %NOM% "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
c:\Progra~1\Oracle\VirtualBox\VBoxManage modifyvm %NOM% --biossystemtimeoffset %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage startvm %NOM%
Vous aurez également besoin de l'heure actuelle au format époque, pour cela utilisez le script suivant (enregistrez-le sous "toEpoch.vbs", ce script visual basic est appelé à partir du script ".bat" ci-dessus):
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())
Pour exécuter la machine virtuelle, il suffit d'exécuter le fichier de script ".bat" ci-dessus. Pas besoin d'ouvrir l'interface d'administration "Oracle VM VirtualBox".
J'espère que cela vous aidera.
Cordialement