This blog is a technical follow up to blog Microsoft Exchange On-Premise Coexistence Issues Related To Time.
In that blog I described a very specific scenario where a client was having issues in their Exchange environment due to time sync issues and addressed at a high level the way to resolve it. The purpose of this blog is to include the specific steps to check on your environment to see if time sync is set up correctly or not.
Step 1 – Find which server is running the PDC role
In every Active Directory environment there exist 5 FSMO roles. FSMO stands for Flexible Single Master Operations and is also commonly referred to as the operations master roles. The purpose of these is to help prevent conflicts when there are multiple domain controllers in an environment. In a single domain controller environment, these roles still exist, but all exist on the single server. The roles are:- Schema master
- Domain naming master
- PDC
- RID pool manager
- Infrastructure master
Step 2 – Check the server’s source for time
Once you know which server is running the PDC role, connect to it and from an elevated Command Prompt or PowerShell run the following commands: To see the source of the systems time. w32tm /query /status You can also see what peers (sources) it is set for by using the command: w32tm /query /peers In this instance, its source is “Free-running System Clock”. If it is in this state or “Local CMOS clock” and the machine exists as a virtual machine on VMware ESXi or Microsoft Hyper-V then it may be temporary. Check it again in a minute or two. When the virtual machine guest service restarts or when the machine boots, it may look at the virtualization host if the settings for that are enabled for time sync and it will report this. After giving it a few minutes check back again. If it still has the source as one of those two places you need to make sure either:- The host it is running on is polling an external reliable time source
- Have this server set to poll an external time source.
Step 3 – Change the server’s source for time
My recommendation is to have your PDC poll an external time source. To make the change run from an elevated PowerShell:
w32tm /config /manualpeerlist:”0.us.pool.ntp.org 1.us.pool.ntp.org 2.us.pool.ntp.org 3.us.pool.ntp.org” /syncfromflags:manual /reliable:YES /update
w32tm /config /update
restart-service w32time
You’ve just changed the PDC’s peers to be 4 different reliable time sources. Confirm it took by running: w32tm /query /peers If your time was off previously it may take a few minutes for it to become synchronized again. You can watch the status by running: w32tm /monitor