Hyper-V Time Synchronization doesn't correct the system clock in the virtual machine if it's more than five seconds ahead of the host clock
Original product version: Windows Server 2012 R2
Original KB number: 2618634
The Hyper-V Time Synchronization Service won't correct the system clock in the virtual machine (VM), if the system clock in the VM is running more than five seconds ahead of the system clock on the host machine.
This is by design and was implemented after reports of issues with applications when the Hyper-V Time Synchronization Service adjusted the time.
If the system clock in the VM is ahead of the host for no more than five seconds, the Hyper-V Time Synchronization Service will adjust the system clock in the virtual machine. However, if the system clock in the VM is ahead for more than five seconds, the Hyper-V Time Synchronization Service will NOT adjust the system clock and there's no way to achieve time adjustment by changing integration service setting.
There's no flag/property/setting that you can set to work around the timesync logic. However, below are a few workarounds that you may try to sync the time:
- Pause and resume the virtual machine.
- Power off and power on the virtual machine.
- Disable and enable the Time Synchronization option in the virtual machine settings (via the Hyper-V Manager console).
- Disable the Hyper-V Time Synchronization option, then use another time sync source and configure the PhaseCorrectRate, MaxPollInterval, MinPollInterval, and UpdateInterval values appropriately to get the Time Sync more closely. MaxpollInterval and MinPollInterval are the minimum and maximum interval between the polls respectively. The value in each is a time in log2 seconds (that is, 2^n, so if you specify 5 then the actual time would be 2^5 = 32 seconds). The default value for domain controllers for each of them respectively is 6 (64 seconds) and 10 (1,024 seconds).
See the below article to know more about Time Sync settings and how to configure them appropriately: