I was trying to resolve How do I force sync the time on Windows Workstation or Server?, and surprise! You need to make it “unreliable”!
Let’s make sure the w32time service is already configure to use external NTP. If not, run following to configure w32time:
w32tm.exe /config /manualpeerlist:”ntp1.example.net ntp2.example.net” /syncfromflags:manual /update
Also follows the article setting NTP server on Windows machine using PowerShell if you also want your control panel in-sync.
Most solutions do not work if the host is a Windows Server 2016 Active Directory Domain Controller (ADDC), as it treats itself as a “reliable” source that cannot make big time change.
w32tm /resync /force does not work, because the
/force does not appear in server 2016.
net time /SET /Y does not work either, because it would have asked:
Do you want to set the local computer’s time to match the time at
\AD.example.net? (Y/N) [Y]
Of course, it won’t work if you are on
/Y just hides the question.
The steps work for me using PowerShell:
1. Set w32time service as unreliable
w32tm /config /reliable:no /syncfromflags:manual /update
/syncfromflags:manual means sync with NTP listed in peer list (i.e. external NTP),
/update for notifying the time service the configuration have changed.
2. Restart the w32time
This should work.
4. If you DO need ADDC as a reliable time source, make it reliable again:
w32tm /config /reliable:yes /update