Установить B ios Время в VirtualBox работает только для небольших смещений - PullRequest
0 голосов
/ 28 марта 2020

У меня есть виртуальная машина, и я запускаю этот скрипт powershell, чтобы попытаться установить время виртуальной машины:

$tempo = ""+([datetime]"3/5/2020 12:01PM" - [datetime]::Now).TotalMilliseconds
$tempo = $tempo/1000
$tempo = ""+[math]::Round($tempo)
$tempo = [int]$tempo*1000

$nome = "Win10-VM"

& ${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

Когда я запускаю скрипт, он не устанавливает время в виртуальной машине; Немного поэкспериментировав, я обнаружил, что могу сделать:

${env:ProgramFiles}\Oracle\VirtualBox\VBoxManage modifyvm $nome --biossystemtimeoffset -100000000

И я получаю смещение -100 000 000 мс, но если я удвою его:

${env:ProgramFiles}\Oracle\VirtualBox\VBoxManage modifyvm $nome --biossystemtimeoffset -200000000

Я не (и смещение, которое я получаю - это смещение меньше -100 000 000, которое я использовал ранее).

Чтобы сделать его немного более странным, у меня есть другая виртуальная машина, в которой я использую тот же сценарий, что и выше, но устанавливаю дату так, чтобы она была 1 января 2020 года и все время работает. Он также находится на windows 10 ВМ, на том же хосте.

Есть ли что-то, чего мне не хватает в virtualbox для установки большего смещения biossystem timeset? Похоже, что нет способа проверить смещение времени после отправки в командной строке (или где-либо еще), поэтому я не могу проверить, сработала ли команда смещения (без запуска ВМ и проверки времени).

ВМ не подключена к inte rnet, поэтому я не думаю, что WIndows Служба времени могла синхронизировать ее, и я установил GetHostTimeDisabled в приведенном выше сценарии.

...