Für den üblichen Client-PC ist es nicht weiter problematisch, wenn die Systemuhr nicht auf die Sekunde genau gestellt ist. Auf Servern möchte man aber exaktere Uhrzeiten, z.B. damit zeitlich abgestimmte Prozesse in einem Serververbund korrekt ablaufen oder aber clusterweit einheitliche Zeiten in den Logfiles sichergestellt sind.
Windows bietet zwar seit Version 5.1 (XP bzw. Server 2003) einen integrierten NTP-Client und -Server an, der jedoch in den aktuellen Windows-Versionen leider ab Werk derart fehlkonfiguriert ist, dass er für verlässliche Zeitsynchronisation nicht brauchbar ist: Auf Standalone PCs und Server (d.h. keine Windows-Domain) wird der Dienst nicht automatisch sondern nur einmal wöchentlich per Taskplaner gestartet. Selbst wenn man ihn auf automatischen Start umstellt, beendet er sich i.d.R. danach wieder selbst. Mit wenigen Zeilen auf der Shell bringt man ihm aber wieder eine brauchbare Funktion bei.
Folgendes Script führt der Reihe nach die nötigen Schritte durch:
net stop w32time reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient \ /v SpecialPollInterval /t REG_DWORD /d 86400 /f sc triggerinfo w32time delete sc config w32time start= Auto net start w32time w32tm /config /manualpeerlist:"0.de.pool.ntp.org,0x9 1.de.pool.ntp.org,0x9 \ 2.de.pool.ntp.org,0x9 3.de.pool.ntp.org,0x9" /syncfromflags:manual /update w32tm /resync
- Der Dienst wird gestoppt (falls er wider erwarten doch gerade läuft).
- Das Poll-Interval wird von 7 Tagen auf 24 Stunden reduziert.
- Die Dienste-Trigger, die den Dienst außerhalb von Windows-Domains stoppen, werden gelöscht.
- Der automatische Dienst-Start wird aktiviert und…
- …der Dienst gestartet.
- Die de-Pool NTP-Server werden konfiguriert.
- Ein sofortiger Resync der Zeit wird ausgelöst.
Als kleine Batchdatei abgelegt kann man damit neu einzurichtende PCs oder Server schnell mit brauchbarer NTP-Synchronisation ausstatten oder den Aufruf sogar in einen automatischen Installationsprozess integrieren.