L'uso della scatola virtuale è possibile impostare l'ora della macchina virtuale in modo che sia diversa dall'ora dell'host


33

L'uso della scatola virtuale è possibile impostare l'ora della macchina virtuale in modo che sia diversa dall'ora dell'host. Dì 1 anno nel passato.

Se volessi eseguire le immagini di Windows XP fornite da Microsoft da qui.
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11575

Si noti per l'immagine XP che:

Expires: This image will shutdown and become completely unusable on February 14, 2013.

È uno dei modi migliori per testare IE 6 e IE 7. Altri test tipici di XP.


Risposte:


38

Non è affatto un problema. Ricorda solo di disabilitare la sincronizzazione dell'ora in VirtualBox Guest Additions, quindi imposta la data + ora nella macchina virtuale come preferisci. C'è anche un'opzione per accedere al BIOS virtuale e impostare la data + ora lì, se necessario al momento dell'installazione.

Questo comando disabilita la sincronizzazione:
http://www.virtualbox.org/manual/ch09.html#disabletimesync

VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1

La seguente opzione consente di impostare un offset in millisecondi: http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm

VBoxManage modifyvm "VM name" --biossystemtimeoffset <msec>

Ok come lo fai.
nelaaro,

Fare? Per favore, sii più specifico?
Stefan Seidel,

3
disabilita la sincronizzazione dell'ora e vai nel BIOS virtuale e imposta la data + ora lì
nelaaro

2
Disabilita sincronizzazione orario: c'è una casella di controllo nel Guest aggiuntivo di VirtualBox. In alternativa: virtualbox.org/manual/ch09.html#disabletimesync Per il BIOS: premi F12 (credo) durante l'avvio della VM, e qui sono descritti gli strumenti da riga di comando: betaarchive.com/forum/viewtopic.php?t=20071 su come modificare l'ora del BIOS.
Stefan Seidel,

3

Esempio di uno script di 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

0

Sulla base dell'esempio ".ps1" (script di Windows PowerShell) riportato sopra, ho scritto un normale file di script ".bat" per modificare l'ora di avvio della macchina virtuale di VirtualBox.

L'ora di inizio desiderata è impostata sulla variabile "TEMPO_START_TIMESTAMP" in formato epoca. È possibile ottenere l'ora di inizio desiderata equivalente di epoh su " http://www.timestampconvert.com/ ".

Il nome della macchina virtuale di VirtualBox da avviare è necessario nella variabile "NOME" (stessa nomenchature utilizzata nello script ".ps1" sopra).

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%

Avrai anche bisogno dell'ora corrente in formato epoh, per questo usa il seguente script (salva come "toEpoch.vbs", questo script Visual Basic è chiamato dallo script ".bat" sopra):

WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())

Per eseguire la macchina virtuale, è sufficiente eseguire il file di script ".bat" sopra. Non è necessario aprire l'interfaccia "Oracle VM VirtualBox Administration".

Spero che aiuti.

Saluti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.