I had the issue, that the Windows Time Service (w32time) was not running on some of my Windows Servers. It came down to only machines, which have not been joined to a Domain.
I finally found the answer here:
Windows starts the w32time Service based on a trigger: (run in cmd shell, powershell won’t show you anything 🙁 )
sc qtriggerinfo w32time
C:\Users\Administrator>sc qtriggerinfo w32time
[SC] QueryServiceConfig2 SUCCESS
DOMAIN JOINED STATUS : 1ce20aba-9851-4421-9430-1ddeb766e809 [DOMAIN JOINED]
DOMAIN JOINED STATUS : ddaf516e-58c2-4866-9574-c3b615d42ea1 [NOT DOMAIN JOINED]
As you see, the service gets stopped as soon as the box is unjoined from the domain.
But Mark had an answer for that as well:
sc triggerinfo w32time start/networkon stop/networkoff
He switches the trigger to the network availabiliy. Now the service runs whenever a network is available.
Additionally you can switch the source ntp server via:
w32tm /config /manualpeerlist:"at.pool.ntp.org de.pool.ntp.org" /syncfromflags:manual /reliable:yes /update
and query the current settings:
w32tm.exe /query /peers