Самое простое решение: внутри гостевой виртуальной машины вы можете запустить эту команду:
net time \\<hostMachineName> /set
Введите NetBios имя вашего хост-компьютера, это установит часы гостевого виртуального компьютера, совпадающие с часами вашего хост-компьютера, через RPC
Более того, вы можете использовать Windows Time Service, w32time. Вы можете взаимодействовать с этим сервисом через w32tm.exe, и он взаимодействует с UDP через порт 123 (я мог бы на самом деле помнить тот :), поэтому в вашем брандмауэре должен быть открыт UDP на порту 123.
Чтобы настроить его на гостевой виртуальной машине:
net stop w32time
w32tm.exe /unregister
w32tm.exe /config /manualpeerlist:<hostMachineName> /syncfromflags:manual
w32tm.exe /config /update
w32tm.exe /resync
w32tm.exe /register
net start w32time
И вы можете запустить /resync по мере необходимости, через планировщик задач или что-то еще; Но я не думаю, что это даже будет необходимо, если вы зарегистрировали его как сервис с этими параметрами
С хост-машины: вы можете установить время для вашего гостя, добавив ключ /computer:<target>
и запустить команду /resync
из ваших скриптов, запущенных на вашем хосте, где target - это имя компьютера netbios для гостевой виртуальной машины.
С хоста обновите гостевой vm:
w32tm.exe /computer:<guestVM> /resync
Смотрите также:
https://technet.microsoft.com/en-us/library/bb491016.aspx https://blogs.msdn.microsoft.com/w32time/2009/08/07/net-time-and-w32time/