С помощью виртуального ящика можно установить, что время вашей виртуальной машины будет отличаться от времени хоста

33

Используя виртуальный ящик, можно установить время вашей виртуальной машины, отличное от времени хоста. Скажем, 1 год в прошлое.

Если бы я хотел запустить образы Windows XP, предоставленные Microsoft отсюда.
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11575

Для образа XP отмечено, что:

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

Это один из лучших способов тестирования IE 6 и IE 7. Другие типичные тесты XP.

nelaaro
источник
browsershots.org
ta.speot.is

Ответы:

38

Это не проблема вообще. Просто не забудьте отключить синхронизацию времени в гостевых дополнениях VirtualBox, а затем установить дату + время на виртуальной машине, как вам нравится. Существует также возможность зайти в Virtual BIOS и установить там дату + время, если это необходимо во время установки.

Эта команда отключает синхронизацию:
http://www.virtualbox.org/manual/ch09.html#disabletimesync

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

Следующая опция позволяет установить смещение в миллисекундах: http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvm

VBoxManage modifyvm "VM name" --biossystemtimeoffset <msec>
Стефан Зайдель
источник
Хорошо, как ты это делаешь?
nelaaro
Что делать? Пожалуйста, будьте более конкретны?
Стефан Зайдель
3
отключите синхронизацию времени и зайдите в Виртуальный BIOS и установите там дату + время
nelaaro
2
Отключить синхронизацию по времени: в VirtualBox Guest дополнительная опция. Альтернативно: virtualbox.org/manual/ch09.html#disabletimesync Для BIOS: нажмите F12 (я думаю) во время запуска виртуальной машины, и здесь описаны инструменты командной строки: betaarchive.com/forum/viewtopic.php?t=20071 на Как изменить время BIOS.
Стефан Зайдель
3

Пример сценария 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
источник
0

На основе приведенного выше примера «.ps1» (сценарий Windows PowerShell) я написал обычный файл сценария «.bat», чтобы изменить время, в которое запускается виртуальная машина VirtualBox.

Желаемое время начала задается в переменной «TEMPO_START_TIMESTAMP» в формате эпохи. Вы можете получить желаемый эквивалент времени начала работы на сайте http://www.timestampconvert.com/ .

Имя виртуальной машины VirtualBox, которая должна быть запущена, необходимо в переменной «NOME» (та же номенклатура, что и в сценарии «.ps1» выше).

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%

Вам также понадобится текущее время в формате epoh, для этого используйте следующий скрипт (сохраните как «toEpoch.vbs», этот скрипт Visual Basic вызывается из скрипта «.bat» выше):

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

Чтобы запустить виртуальную машину, просто запустите файл сценария ".bat" выше. Нет необходимости открывать интерфейс «Oracle VM VirtualBox Administration».

Надеюсь, это поможет.

С уважением

Txane
источник