使用虚拟框可以将您的虚拟机时间设置为与主机时间不同


33

使用虚拟框可以将您的虚拟机时间设置为不同于主机时间。说过去1年。

如果要从此处运行Microsoft提供的Windows XP映像。
http://www.microsoft.com/zh-CN/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典型测试。


Answers:


38

没问题的 只需记住在VirtualBox Guest Additions中禁用时间同步,然后根据需要在虚拟机中设置日期和时间。如果在安装时需要,还可以选择进入虚拟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

做什么?请更具体吗?
Stefan Seidel 2013年

3
禁用时间同步并进入虚拟BIOS并在那里设置日期和时间
nelaaro

2
禁用时间同步:VirtualBox Guest Additional中有一个复选框。或者:virtualbox.org/manual/ch09.html#disabletimesync对于BIOS:命中F12(我认为)虚拟机启动时,这里是命令行工具描述:betaarchive.com/forum/viewtopic.php?t=20071上如何更改BIOS时间。
Stefan Seidel,

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/ ”上获得所需的等效开始时间。

变量“ NOME”(上面的“ .ps1”脚本中使用的名称相同)需要使用要启动的VirtualBox虚拟机的名称。

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管理”界面。

我希望这有帮助。

问候

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.