What is the command to sync a Windows workstation or server to its configured time source?
As Kyle said
w32tm /resync is the modern way to do this. See this Link to Microsoft Knowledgebase (KB 307897) for more information on the w32tm command.
There is also
net time which is an older version but perhaps easier.
For those that still asking this question.
To update, use the command below (2008 and 2012 server compatible)
w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
change the ntp_server with your source
Restart the time service
net stop w32time net start w32time
Resync the time
Verify your sync status
w32tm /query /status
Commands above should be fine if your sources are working correctly and/or your connection is OK (firewall or Microsoft Forefront can be an issue also). The commands below can help with troubleshooting
To list out peers
w32tm /query /peers
To list out NTP Sources:
w32tm /query /source
You can use:
w32tm /resync /rediscover will also "force redetection of network resourced before resynchronization."
net time /set
Will prompt you to set the time to the DC. (Works for older versions of Windows)
OS: MS Windows 7
All above ideas have been tried but did not help. The original problem still exists: "The computer did not resync because the required time change was too big."
Solution is found in the registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config
- change this if the local time is in a hurry (e.g. 31-Dec-2050): MaxNegPhaseCorrection
- change this if the local time is delayed (e.g. 1-Jan-1980): MaxPosPhaseCorrection
- The default values are 0xD2F0 (i.e. 54000 sec. = 15 hours)
(use Google for more details)
I use this simple
win_clock_sync.bat file from Start Menu StartUp:
echo off echo Sync computer time from internet echo. echo Back-up registry w32time\Config reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config exported_w32time.reg /y rem changing the registry keys temporarly: reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f echo. echo w32tm /config /update w32tm /config /update echo. echo w32tm /resync /rediscover w32tm /resync /rediscover echo. echo Restore registry w32time\Config reg import exported_w32time.reg
net start w32time w32tm /resync
Almost none of the solutions (except @Akos) work if the host is an Windows Server 2016 Active Directory Domain Controller (ADDC), as it treats itself as a "reliable" source that cannot make big time change.
w32tm /resync /force does not work, because the
/force does not appear in server 2016.
net time /SET /Y does not work either, because it would have asked:
Do you want to set the local computer's time to match the time at
\AD.example.net? (Y/N) [Y]
Of course, it won't work if you are on
/Y just hides the question.
The steps work for me using PowerShell:
- Set w32time service as unreliable:
w32tm /config /reliable:no /syncfromflags:manual /update
/syncfromflags:manual means sync with NTP listed in peer list (i.e. external NTP),
/update for notifying the time service the configuration have changed.
- Restart the w32time
Stop-Service w32time Start-Service w32time
This should work.
- If you DO need ADDC as a reliable time source, make it reliable again:
w32tm /config /reliable:yes /update Stop-Service w32time Start-Service w32time
I have a Win10 image that I can restore to a snapshot where this error message is always reproducible:
"The computer did not resync because the required time change was too big."
I have tried to script a solution to this problem with no avail:
reg import nettime.reg # updates MaxPosPhaseOffset and MaxNegPhaseOffset net start w32time w32tm.exe /config /manualpeerlist:"pool.ntp.org",0x8 /syncfromflags:manual /reliable:no /update w32tm.exe /query /configuration w32tm.exe /resync /rediscover w32tm.exe /resync /force
/reliable:no nor the
MaxPosPhaseCorrection settings, nor any other commands indicated here worked immediately in a reproducible way.
After updating the registry, starting the service, updating the configuration and again restarting the service I still had to wait many minutes before I
w32tm /resync /rediscover would succeed.
The time syncronization does succeed eventually, just not in a timely and reliable manner.
Based on my research, I bookmarked this:
If Hyper-v host server is a part of the same domain, disable time sync for PDC guest vm
On PDC(or any single workstation), update from quoted internal DNS or ip untrusted address(0x8):
W32tm /config /manualpeerlist:"192.168.0.254,0x8" /syncfromflags:manual /reliable:yes /update
Powershell Restart-Service w32time
W32tm /resync /nowait
on dc that is not PDC:
w32tm /config /syncfromflags:domhier /update
W32tm /resync /rediscover
On servers and other stations for update time only, not config:
W32tm /resync /nowait
Check that time is really updating(difference ):
w32tm /stripchart /computer:192.168.0.254 /samples:15 /dataonly
if time service broken or failed and need reset:
Powershell Stop-service w32time W32tm /unregister Timeout 30 W32tm /register Powershell Start-service w32time
Note: NTP port is 123 UDP and should give the same output on any healthy computer
Powershell Get-NetUDPEndpoint -LocalPort 123 LocalAddress LocalPort ------------ --------- :: 123 0.0.0.0 123
Other commands w32tm /query /status w32tm /query /peers w32tm /query /configuration
Best practice from ms: Time Sync best practices