For some reason, domain clients stopped getting the correct time from the Domain Controller. Clients were taking time from the local CMOS. This can be fixed by the following steps.

Run the following commands as Administrator:

On Domain Controller (DC):

  • Check last sync time:
    w32tm /query /status
  • Step 1:
    w32tm /config /manualpeerlist:time.windows.com /syncfromflags:manual /reliable:yes /update
  • Step 2:
    net stop w32time && net start w32time

On Client:

  • Step 3:
    w32tm /config /syncfromflags:domhier /update
  • Step 4:
    net stop w32time && net start w32time

This solution is derived from a helpful post I found on StackExchange:

I went through all the above on my domain-joined Windows 10 machine trying to get it to resync.

What fixed this for me was running DCDIAG on my domain controller, and it showed an error: "This server is not advertising as a time server."

I then ran w32tm /query /status on my DC, which returned something about vmnic. This meant my DC was using time integration services from the Hyper-V host.

I opened Hyper-V Manager, went to the settings for my DC, and unchecked the option for Time Integration Services.

Then I reset my DC to use an external time source:

w32tm /config /manualpeerlist:time2.google.com /syncfromflags:manual /reliable:yes /update
net stop w32time && net start w32time

Next, on my Windows 10 client I ran:

w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time

That fixed the time sync immediately. After about 15 minutes, the rest of my domain-joined PCs also updated to the correct time.

β€” Steve S