На підставі вищевказаного прикладу ".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".
Я сподіваюся, що це допомагає.
З повагою