How to set (and change) an NTP time source in Windows Server 2008 R2 (SBS 2011 and Vanilla Server).

Recently, the clocks on my home networked PCs began drifting off sync until the difference was around 30 minutes. At first i thought that my SBS server was no longer synching with time.windows.com (the default time server for windows). After a quick look at the event log, I could see that it was syncing correctly and that the date and timezone were correct. So I began to look at how I could change the NTP server that Windows was syncing with. Unlike Windows XP, which had a tab were you could set the source and even add your own in the date and time control panel applet, Windows Server 2008 and Windows 7 have nothing of the sort, so how was I going to change the source. A quick look on technet led me to an article titled Windows Time Services Tools and Settings.

To query the time service about its current status open up an elevated command prompt and type in:
w32tm /query /status

This will display the following output (it will either state Source: Local CMOS Clock or time.windows.com)

After working out the souce and that it was synching without error as well as the obvious the fact the time was way off I needed to find a reliable Time service. After a bit of searching around the web I found pool.ntp.org which is the part of the home for the Network Time Protocol open source project (ntp.org). Members work together to provide a public pool of time servers for use by individuals and businesses. pool.ntp.org uses DNS round robin to make a random selection from a pool of time servers who have volunteered to be in the pool making this service highly redundant and reliable.

If you navigate to the Time Servers page on their wiki you will see a list of servers as rell as regional servers which you can also choose from.  Since I’m in Australia I narrowed it down to Oceanaia and then Australia leaving me with au.pool.ntp.org.  So basically I now had to reconfigure the Windows Time service to sync with the NTP Australian Server Pool. A quick look over the technet documentation told me the commands I needed to run which was:
w32tm /config /manualpeerlist:au.pool.ntp.org

Which after being executed in an elevated command prompt will leave you with command completed successfully.  Once that is configured we need to restart the time service by either doing net stop/start w32time or via the Services Control Panel on Windows Time.

You can then query the time service again using /query and /status which will present you with the above output. As you can see the time service is now synching with the service that I specified it to. You can look around the NTP site to find a group of services which are closer to your location, but it generally doesn’t matter where you pick the NTP server from.

And there you have it, how to reconfigure the Windows Time service to look at a different time source.  As a side note before closing off the article, Microsoft don’t fully support the Windows 32 Time service for use in high accuracy environments as mentioned in this Knowledge base article. So if you need something which is highly accurate then you need to look elsewhere.

Leave a comment ?

10 Comments.

  1. Thank you, this worked great.

    [Reply]

  2. Glad to see it helped you out. I am doing this for pretty much all of the clients I manage now as it helps to keep everything ticking along nicely.

    [Reply]

  3. Finally, an answer that applied to my situation and worked perfectly. Thanks.

    [Reply]

  4. Thank you so much for the info, it helps a lot! :)

    [Reply]

  5. Hi,

    If i setup Win Svr 2012 as a NTP server, then how about other PC to connect / sync with this Win Svr 2012.

    [Reply]

    John Reply:

    So long as the 2012 machine is a DC (and is your PDC) then clients will automatically sync. If not then you need to modify group policy and windows firewall to allow clients to sync up. If you are not on the domain, you can use the command in this post on the clients to point to the 2012 server (just change the pool.ntp address to address of 2012 server).

    [Reply]

  6. I had trouble with the above command not applying on a Windows Server 2012 DC.

    The following command worked instead, and also didn’t require the service to be restarted.

    w32tm /config /manualpeerlist:au.pool.ntp.org /syncfromflags:all /update

    [Reply]

  7. The orginal Solution did not work on my Server 2008 R2 but Solomon’s command did! Thanks!

    [Reply]

  8. This procedure does not work for SBS 2011. After restarting the time service your command merely changed the update source from “free-running system clock” to “Local CMOS clock”.

    Begs the basic question, how do you set and change an NTP time source in Windows SBS 2011

    [Reply]

  9. Original command didnt update the source (Local CMOS Clock) or stratum:1

    The solomun command (w32tm /config /manualpeerlist:au.pool.ntp.org /syncfromflags:all /update)worked a treat

    Updated to au.poool.ntp.org and the stratum:4 (which means synced by NTP>

    [Reply]

Leave a Comment

%d bloggers like this: