Використовуючи віртуальну скриньку, можна встановити, що час віртуальної машини відрізняється від часу перебування


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.


Відповіді:


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 є прапорці Як варіант: virtualbox.org/manual/ch09.html#disabletimesync Для BIOS: натисніть F12 (я думаю) під час запуску VM, і ось описані інструменти командного рядка: betaarchive.com/forum/viewtopic.php?t=20071 on Як змінити час 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

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", цей візуальний базовий скрипт викликається із сценарію ".bat" вище):

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

Щоб запустити віртуальну машину, просто виконайте файл сценарію ".bat" вище. Не потрібно відкривати інтерфейс "Адміністрація Oracle VM VirtualBox".

Я сподіваюся, що це допомагає.

З повагою

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.