Automatically sync Windows time more often than default
Folks, I got this running with windows built in w32tm and a scheduled task (see below).
First step was to config w32tm to use many different time servers (and also to log so we could see what was happening). Second step was to schedule w32tm in task scheduler. I liked this solutions as it didn't require any 3rd part tools. It is really important to set up the different time servers as I find quite often they don't respond.
Configure w32tm
Open Command prompt (Run the following as admin)
w32tm /config /manualpeerlist:"time.nist.gov time.windows.com time-nw.nist.gov time-a.nist.gov time-b.nist.gov time-a.timefreq.bldrdoc.gov time-b.timefreq.bldrdoc.gov time-c.timefreq.bldrdoc.gov utcnist.colorado.edu" /syncfromflags:manual /update
w32tm /query /configuration
Check to see the NTP server list is updated correctly ie it reflects the peer list you have just entered
w32tm /debug /enable /file:C:\windows\temp\w32time.log /size:10000000 /entries:300
Browse to directory and check to see the log has been created
Change system time manually(so that the time is now out of sync), then go back to command prompt and run the resync command
w32tm /resync
Check system time has been updated. **If you get an error about the time service not being started you can use the command net start w32time
then try another resync
If you get the following error: The compter did not resync because the required time change was too big.
then use this command to resync: w32tm /resync /force
If this works successfully then all you have to do is configure the following scheduled task to run as often as you want (it will use your peer list configured above).
Schedule w32tm
Program/Script Argument
%windir%\system32\sc.exe start w32time task_started
%windir%\system32\w32tm.exe /resync
Go to Control Panel > Administrative Tools > Task scheduler
left is an folder tree, expand: Task scheduler library > Microsoft > Windows > Time synchonization
right click the task: SynchronizeTime > properties
On the tab: Triggers you can add the triggers you want.
You can use TimeSync to automate time syncing.
-
upside: doesn't register a whole service like W32tm (which you have, when you use W32tm)
-
upside: its portable and can be run with
/auto
option from the startup folder -
downside: third-party tool and not a build-in solution
TimeSync gets the current time from a NIST server, and adjusts the PC clock if necessary. Accuracy is usually within a second. [...] TimeSync will try alternative servers, in case the time cannot be obtained from the preferred server.
Option /auto is provided to run TimeSync from the StartUp folder. In this mode the TimeSync window will not show if the clock offset is under a given minimum.
Of course you can still register the build-in solution W32tm with cmd.exe → W32tm /register
and set up your scheduled task to call cmd.exe → W32tm /resync
every 5 minutes.
You can also try this program: http://www.worldtimeserver.com/atomic-clock/ It allows you to change windows time service settings - the easy way.
Also forcing sync with it works, while the windows "update now" almost never works.