
Windows Server assumes that the system BIOS clock is set to local time by default. However, many virtualization platforms, including those based on Linux or hypervisors, configure BIOS clocks to use UTC instead. This mismatch can cause Windows to apply incorrect time adjustments, incorrect timestamps, and time-related service failures after reboots.
This article explains how to prevent time drift by applying a registry-level patch that tells Windows to treat the BIOS clock as UTC, along with tips for proper time synchronization.
Why Time Drift Occurs
When Windows expects a local-time BIOS but the hardware clock is set to UTC, it compensates incorrectly. This causes symptoms like:
- The clock jumping forward or backward after reboot
- Scheduled tasks running at the wrong time
- Authentication errors (Kerberos, SSL)
- Inconsistent timestamps in logs
Set the Correct Time Zone
Before patching, you can set the appropriate local time zone using the graphical interface:
- Press
Win + R
, typetimedate.cpl
, and press Enter. - Click Change time zone.
- Select your local time zone and apply.
This does not prevent clock drift if the BIOS remains in UTC mode.
Enable UTC BIOS Clock Support
To resolve the issue permanently, enable Windows Server's hidden support for UTC-based BIOS clocks by modifying the registry.
Open Notepad and paste the following content:
iniWindows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
Save the file as
utc-clock.reg
.Right-click the file and select Merge.
Confirm the User Account Control (UAC) prompt to apply the registry change.
Reboot the server to apply the setting.
Configure Time Synchronization
After applying the UTC BIOS registry patch, configure Windows to synchronize with a reliable NTP server.
Open Command Prompt as Administrator.
Set a manual time server.
pwshw32tm /config /manualpeerlist:"time.windows.com,0x1" /syncfromflags:manual /reliable:yes /update
Restart the Windows Time service.
pwshnet stop w32time && net start w32time
Force an immediate time sync.
pwshw32tm /resync
Verify the synchronization status.
pwshw32tm /query /status
Replace
time.windows.com
with a reliable NTP server such aspool.ntp.org
or your organization's internal time source.
Conclusion
In this article, you corrected time drift on Windows Server by:
- Setting the correct time zone via the graphical interface
- Applying a registry patch to enable UTC BIOS clock support
- Configuring time synchronization with a trusted NTP server
These changes ensure consistent timekeeping across reboots, prevent scheduling and authentication issues, and align Windows behavior with UTC-based BIOS configurations often used by hypervisors or cloud platforms.
No comments yet.