Ich hatte ein sehr simples Problem: Bei einem älteren Notebook gab es ein Problem mit dem Akku. Durch dessen Unzuverlässigkeit kann es recht häufig passieren, dass das Gerät komplett tiefentladen werden. Die Folge ist, dass das BIOS die aktuelle Systemzeit vergisst. Beim Hochfahren denkt der Rechner dann, dass aktuell der 01.01.1980 sei.
Windows XP bietet die Möglichkeit an, dass beim Hochfahren die Systemzeit durch eine Anfrage bei einem Timeserver abgeglichen und gegebenenfalls aktualisiert wird. Diese Funktion lässt sich dadurch aktivieren, dass man einen Doppelclick auf die Uhr im Taskbar macht. Es öffnet sich dann das Fenster “Date and Time Properties“. Dort gibt es dann das Register “Internet Time“. Ein Aktivieren des Option Buttons “Automatically sycnhronize with an Internet time server” sorgt dann dafür, dass Windows nach dem Hochfahren des Rechners die Zeit abgleicht.
Leider hilft diese Funktion für mein Problem nicht. Der Grund ist eine an sich gute Sicherheitsfunktion von Windows: Die Synchronisation wird abgebrochen, wenn die Abweichung zwischen der aktuellen Systemzeit und dem Server zu hoch ist. In der Regel ist nur eine Anpassung um einige Stunden erlaubt. In meinem Fall weicht die Systemzeit jedoch um einige Jahrzehnte von der korrekte Zeit ab.
Die Einstellungen für den Windows NTP Client werden in der Registry unter folgendem Key gespeichert:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
Relevant sind die beiden Einträge: MaxNegPhaseCorrection undMaxPosPhaseCorrection. Der erste bestimmt, wieviele Sekunden die aktuelle Systemzeit über der Serverzeit liegt, um eine Aktualisierung zu erlauben. Der zweite Eintrag ist für mein konkretes Problem der entscheidende. Er bestimmt, wieviele Sekunden die Systemzeit nach oben korrigiert werden darf.
Ich habe den Wert bei mir einfach auf das Maximum erhöht:
MaxPosPhaseCorrection = 0xffffffff
Dadurch wird die Systemzeit einige Sekunden nach dem Start von Windows mit dem Server synchronisiert.