42 votes

En utilisant VirtualBox, est-il possible de définir l'heure de votre machine virtuelle pour qu'elle soit différente de l'heure de l'hôte ?

En utilisant VirtualBox, est-il possible de régler l'heure de votre machine virtuelle pour qu'elle soit différente de l'heure de l'hôte. Disons, 1 an dans le passé.

Si je voulais exécuter les images de Windows XP fournies par Microsoft depuis ici.
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11575

Il est noté pour l'image de XP que:

Expires: Cette image s'arrêtera et deviendra complètement inutilisable le 14 février 2013.

C'est l'un des meilleurs moyens de tester IE 6 et IE 7. Autres tests typiques de XP.

53voto

JJ Wille Points 21

Il n'y a aucun problème. Rappelez-vous simplement de désactiver la synchronisation de l'heure dans les Additions Invité VirtualBox, puis définissez la date et l'heure dans la machine virtuelle comme vous le souhaitez. Il existe également une option pour accéder au BIOS virtuel et définir la date et l'heure là-bas, si nécessaire lors de l'installation.

Cette commande désactive la synchronisation :
http://www.virtualbox.org/manual/ch09.html#disabletimesync

VBoxManage setextradata "nom de la VM" "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 "nom de la VM" --biossystemtimeoffset

6voto

eliseu Points 61

Exemple d'un script Windows PowerShell

startVM.ps1

# Démarre toujours la machine virtuelle à la date du 30/12/2016

$tempo = ""+([datetime]"12/30/2016" - [datetime]::Now).TotalMilliseconds
$tempo = ""+[math]::Round($tempo)
$nome = "nomMachineVirtuelle"

& ${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

0voto

Txane Points 1

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

0voto

SunwayCo Points 1
  • Vous devriez être sur le chemin de VBox, cela ressemblera presque à cela (C:\Program Files\Oracle\VirtualBox)

  • Ouvrez votre Virtual Box et à partir du menu Démarrer > CMD >cd C:\Program Files\Oracle\VirtualBox

  • l'invite ressemblera à ceci C:\Program Files\Oracle\VirtualBox>

  • Ensuite, écrivez la commande suivante : [n'oubliez pas de récupérer votre Nom VBox] VBoxManage setextradata "Mettre_votre_Nom_VM" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

  • La commande complète ressemblera à ceci dans le CMD
    C:\Program Files\Oracle\VirtualBox>VBoxManage setextradata "Mettre_votre_Nom_VM" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

après avoir mis en œuvre ces étapes, vous pourrez changer la date et l'heure de VBox.

Commande de synchronisation de la date et de l'heure

Bonne chance

0voto

Laura Points 1

Juste quelques informations qui peuvent être utiles à connaître, la commande :

VBoxManage setextradata "nom de la VM" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

Peut être exécutée lorsque le "nom de la VM" invité est en cours d'exécution et elle prend effet immédiatement (au moins sur un hôte Windows et un invité Windows).

Après l'avoir exécuté (même si l'invité est en cours d'exécution), vous pouvez changer la date et elle ne revient pas à la date de l'hôte ; il n'est pas nécessaire d'arrêter ou de redémarrer l'invité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X