À l'aide de la boîte virtuelle, il est possible de configurer l'heure de votre machine virtuelle pour qu'elle soit différente de l'heure de l'hôte. Dis 1 an dans le passé.
Si je voulais exécuter les images windows XP fournies par Microsoft à partir d'ici.
http://www.Microsoft.com/en-us/download/details.aspx?displaylang=fr&id=11575
Il est noté pour l'image XP que:
Expires: This image will shutdown and become completely unusable on February 14, 2013.
C'est l'un des meilleurs moyens de tester IE 6 et IE 7. Autres XP tests typiques.
Ce n'est pas un problème du tout. N'oubliez pas de désactiver la synchronisation de l'heure dans les additions invité de VirtualBox, puis de définir la date et l'heure dans la machine virtuelle comme vous le souhaitez. Il existe également une option permettant d'accéder au BIOS virtuel et de définir la date et l'heure, si nécessaire lors de l'installation.
Cette commande désactive la synchronisation:
http://www.virtualbox.org/manual/ch09.html#disabletimesync
VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
L'option suivante permet de définir un décalage en millisecondes: http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm
VBoxManage modifyvm "VM name" --biossystemtimeoffset <msec>
Exemple de script Windows PowerShell
startVM.ps1
# Starts the VM always on the date 12/30/2016
$tempo = ""+([datetime]"12/30/2016" - [datetime]::Now).TotalMilliseconds
$tempo = ""+[math]::Round($tempo)
$nome = "virtualMachineName"
& ${env:ProgramFiles}\Oracle\VirtualBox\VBoxManage setextradata $nome "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
& ${env:ProgramFiles}\Oracle\VirtualBox\VBoxManage modifyvm $nome --biossystemtimeoffset $tempo
& ${env:ProgramFiles}\Oracle\VirtualBox\VBoxManage startvm $nome
D'après l'exemple ".ps1" (script Windows PowerShell) ci-dessus, j'ai écrit un fichier de script ".bat" standard pour modifier l'heure d'horloge à laquelle la machine virtuelle de VirtualBox démarre.
L'heure de début souhaitée est définie sur la variable "TEMPO_START_TIMESTAMP" au format Epoch. Vous pouvez obtenir votre équivalent epoh d’heure de début à l’adresse " http://www.timestampconvert.com/ ".
Le nom de la machine virtuelle de VirtualBox à démarrer est requis dans la variable "NOME" (même nom que celui utilisé dans le script ".ps1" ci-dessus).
echo off
echo %time%
set NOME="Windows_7_x64"
set TEMPO_CS_2_MS=0
set TEMPO_S_2_MS=000
rem # Starts the VM always on the 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 %NOME% "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
c:\Progra~1\Oracle\VirtualBox\VBoxManage modifyvm %NOME% --biossystemtimeoffset %TEMPO%
c:\Progra~1\Oracle\VirtualBox\VBoxManage startvm %NOME%
Vous aurez également besoin de l'heure actuelle au format epoh. Pour cela, utilisez le script suivant (enregistrez 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, exécutez simplement le fichier de script ".bat" ci-dessus. Inutile d'ouvrir l'interface "Oracle VM VirtualBox Administration".
J'espère que ça aide.
Cordialement