À l'aide de la boîte virtuelle, est-il possible de configurer l'heure de votre machine virtuelle pour qu'elle soit différente de l'heure de l'hôte

33

À 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 tests typiques de XP.

Nelaaro
la source
browsershots.org
ta.speot.is

Réponses:

38

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>
Stefan Seidel
la source
Ok comment tu fais ça
Nelaaro
Faire quoi? S'il vous plaît être plus précis?
Stefan Seidel
3
désactiver la synchronisation de l'heure et aller dans le BIOS virtuel et définir la date et l'heure
nelaaro
2
Désactiver la synchronisation du temps: il y a une case à cocher dans le VirtualBox Guest Additional. Vous pouvez également: virtualbox.org/manual/ch09.html#disabletimesync Pour le BIOS: appuyez sur F12 (je pense) lors du démarrage VM, et voici les outils de ligne de commande décrits: betaarchive.com/forum/viewtopic.php?t=20071 sur comment changer l'heure du BIOS.
Stefan Seidel
3

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
Eliseu
la source
0

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 d'époque. Vous pouvez obtenir votre équivalent epoh d’heure de début sur « 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. Pas besoin d'ouvrir l'interface "Oracle VM VirtualBox Administration".

J'espère que ça aide.

Cordialement

Txane
la source