How do I confirm what my PDC is using for it's time source and how do I setup an external time source?
Server 2012 R2, Hyper-V
I am trying to finalize setting up my first primary domain controller. One of the warnings that always comes up after first promoting the DC is Event ID 12 along with other time source related events.
So I read different links (link1, link2, link3 which disagrees w/link4, but link4 is more recent). I followed link2's sequence which was this:
Net Stop W32Time
W32tm /config /syncfromflags:manual /manualpeerlist:"time-nw.nist.gov"
W32tm /config /reliable:yes
Net Start W32Time
W32tm /config /update
I did this because it seemed pretty straightforward and now my DC seems 'happy' WRT to it's time service, at least it's not throwing any more warnings when it starts up.
But it's not very satisfying. I assigned my external reference as time-nw.nist.gov, but when I run this command at the prompt:
w32tm /stripchart /computer:"time-nw.nist.gov" /samples:5 /dataonly
I see my time is off by +15.xxx seconds.
I also ran "w32tm /resync" but there's still a discrepency.
That suggests to me the external reference isn't working. But I don't understand how to ask the DC what it's using as an external reference. I only understand how to assign it.
There's also the issue of the DC being hosted on Hyper-V. At link4 above Microsoft says this in a note:
"This guidance has been recently updated to reflect the current recommendation to synchronize time for the guest domain controller from only the domain hierarchy, rather than the previous recommendation to partially disable time synchronization between the host system and guest domain controller."
So was link2's guidance correct? But even so, how do I know it was actually set correctly, and why is there still a lag? Is there any new guidance on doing this when the DC is a vm hosted on Hyper-V?
Thanks.
As it turns out, it is one thing to find out what your time source is. It's another thing to make sure the time source being used actually works.
As with most tech issues, the solution is simple once someone else tells you the steps. I will recap here what everyone told me and what was required to actually get the time source working.
As joeqwery explained, this command confirms your time source:
w32tm /query /source
On a VM PDC if the return is "VM IC Time Synchronization Provider" then you must go to Hyper-V Manager > VM in question > right-click > Settings > Management > Integration Services and uncheck Time synchronization. Rerun w32tm /query /source and the source should be different now. That doesn't mean you're done, it just means Hyper-V isn't overriding your time source.
Now the time source must be set using w32tm commands:
Net Stop W32Time
W32tm /config /syncfromflags:manual /manualpeerlist:"0.us.pool.ntp.org"
W32tm /config /reliable:yes
Net Start W32Time
W32tm /config /update
In practice I think the Stop/Start may not really be required, but the last command is required to update the settings. Also, some of the commands above can be run all on the same command line; your choice. And even though I had previously run the sequence above, after turning off Hyper-V Time synchronization, I had to rerun this sequence because the previous settings had not been saved.
Also note the time source very carefully. I initially used time.windows.com. When I performed:
w32tm /resync
I received
The computer did not resync because no time data was available
As soon as I changed to 0.us.pool.ntp.org that problem went away. It's not clear to me if this is a protocol issue or a reliability issue, but the time source is important.
Finally, when we run this:
w32tm /stripchart /computer:"0.us.pool.ntp.org" /samples:5 /dataonly
We should get samples very close to zero. If not, then
W32tm /resync
Also, it you're going back and forth changing things around, recheck the time source and you may have to rerun
w32tm /config /update
My findings is that it doesn't require registry hacks as found in many places, just the right sequence:
Turn off Hyper-V time synchronization
Select a time source (or list of sources) from http://www.pool.ntp.org/en/
Configure the external time source
Perform the update of the configuration
Check the source
Check the synchronization using the /stripchart command
Cheers.