© www.a-m-i.de, EDV-Sachverständiger Alexander Müller

Die Windows - Uhrzeit

Windows 2000 (und die Nachfolger) verwenden den "Windows - Zeitgeber" - Dienst, um die Uhrzeit mit anderen Uhren im Netzwerk oder im Internet abzugleichen und nachzustellen.
Diesem Dienst kann man Vorgaben machen, wann, von wem und wie oft er die Uhrzeit von einer externen Quelle besorgen soll, um die eigene Uhrzeit aktuell zu halten.

Die Einstellmöglichkeiten sowie meine Erfahrungen damit beschreibt dieser Artikel.

Grundlagen

Externe Zeitquellen

Konfiguration

Kommandozeilen - Befehle

Windows NT

Windows XP, Server 2003

Zeitzonen - Beschriftung

Buchtips

Links

Grundlagen

Der "Windows-Zeitgeber" - Dienst heißt in der englischsprachigen Original - Dokumentation "W32Time Service". Er wird automatisch auf jedem Windows 2000, XP und 2003 - System vorinstalliert und startet auch automatisch beim Start von Windows. In der Systemsteuerung ist er unter "Verwaltung" / "Dienste" unter "Windows-Zeitgeber" zu finden, und dort kann er auch manuell beendet und gestartet werden.

Wenn man den Dienst einmal beendet und neu startet, dauert es etwa 10 Sekunden, dann wird die lokale Uhrzeit von der externen Quelle her aktualisiert, die aktuell konfiguriert ist (die Beschreibung folgt gleich).

Der W32Time Service kommuniziert über das "Simple Network Time Protocol" (SNTP, RFC 1769), eine vereinfachte Form des "Network Time Protocol" (NTP, RFC 1305), welche mit NTP voll kompatibel ist. Korrekt eingestellt, kann das SNTP bei der Zeitsynchronisation Genauigkeiten im Bereich Millisekunden erreichen, was für die meisten Rechner vollkommen ausreicht. Wer höhere Genauigkeitsansprüche hat, muß sich Zusatzprodukte installieren, die auf der Basis von NTP (oder sogar noch genauer) arbeiten.

Externe Zeitquellen

Damit man seine Uhr auf die exakte Uhrzeit einstellen kann, benötigt man eine zuverlässige und vertrauenswürdige externe Zeitquelle, auf deren Basis man den Abgleich einstellt.

Microsoft schlägt z.B. die Zeitserver des U.S. Naval Observatory vor (also ntp2.usno.navy.mil @ 192.5.41.209, oder auch tock.usno.navy.mil @ 192.5.41.41). Ob diese Quelle vertrauenswürdig ist, muß jeder für sich selbst entscheiden, zumal jeder weiß, was mit dem GPS - System während kriegerischer Auseinandersetzungen passiert. Ich empfehle meinen Kunden die Zeitserver der Physikalisch-Technischen Bundesanstalt, also z.B. ptbtime1.ptb.de @ 192.53.103.103 oder ptbtime2.ptb.de @ 192.53.103.104
Es gibt aber mittlerweile eine gute Auswahl an Zeitservern, die öffentlich zugänglich sind, zum Beispiel diese hier.
Jedoch ist ein kritischer Blick nützlich, denn die Liste wird offenbar nicht mehr gepflegt, ich konnte zum Beispiel kein Zeitupdate per NTP vom Server der Uni Erlangen machen (Stand: Oktober 2007), der Server der Physikalisch-Technischen Bundesanstalt dagegen ist mustergültig zuverlässig.

Man sollte dann jedoch unbedingt die Standardeinstellung bezüglich der Sommerzeit in Windows unverändert lassen (also: automatische Umstellung), denn diese Zeitserver arbeiten mit dem UTC - Format, welches es ermöglicht, daß man überall auf der Welt seine Zeit abholen kann, egal in welcher Zeitzone man sich befindet.

Konfiguration

Die Konfiguration des W32Time Service kann man unter folgendem Registry - Key einstellen:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

Vorsicht! Änderungen an der Registry können gefährlich sein, im schlimmsten Fall kann es zu Datenverlusten kommen, oder auch zur kompletten Zerstörung der Windows - Installation. Daher bitte unbedingt vor dem Arbeiten in der Registry alle Sicherheitsvorkehrungen (Datensicherung etc.) treffen !

Die einzelnen Felder, die konfiguriert werden können, sind unter den unten angegebenen Links genau dokumentiert, ich beschränke mich hier auf das Wesentliche.

Auf einem frisch installierten Rechner findet man unter diesem Schlüssel die drei Einträge "ServiceDll", "ServiceMain" und "Type", wobei in "Type" der Wert "NT5DS" eingetragen ist. Laut offizieller Dokumentation soll damit gewährleistet sein, daß ein Rechner, der Domänenmitglied ist, seine Zeit stets vom zuständigen Domain Controller abholt. Ich habe selbst gesehen, daß dies funktionieren kann, aber auch, daß es manchmal nicht geht. Wenn man also sicher gehen will, daß die richtige externe Quelle konfiguriert ist, gibt man folgende Werte ein:

Type = "NTP" NtpServer = "Servername" Period = 144

Beides natürlich ohne Gänsefüßchen, beides sind String - Einträge (REG_SZ), und für Servername kann der Rechnername des Servers oder eine IP - Adresse eingegeben werden (ohne Doppel-Backslash). Der Name einer Domäne funktioniert hier nicht.

Selbst wenn der eigene Rechner nicht Teil eines Netzwerks ist, kann man hier eine externe Quelle angeben, die dann abgeglichen werden muß, wenn man online ist.

Wichtig: Der W32Time Service bekommt Änderungen an diesen Einstellungen nicht mit, das heißt er arbeitet zunächst mal mit den alten Einstellungen weiter. Man muß den Dienst entweder einmal anhalten und neu starten, oder mit dem Kommandozeilenbefehl "w32tm /config /update" darauf aufmerksam machen, daß sich etwas geändert hat. Der Kommandozeilenbefehl "w32tm" arbeitet leider unter Windows 2000 und XP völlig anders, in dieser geschilderten Form nur in Windows XP.

In einem Netzwerk empfiehlt es sich, den Domain Controller die Zeit von einer externen Quelle abrufen zu lassen, und alle übrigen Rechner vom Domain Controller aus zu versorgen. Wenn der Domain Controller also als Zeitquelle dient, sollte er den Registry-Eintrag "ReliableTimeSource" auf 1 stehen haben (DWORD!).

In der Standardeinstellung ist "Period" ein String (REG_SZ), mit dem Default-Wert "SpecialSkew", der alle 45 Minuten einen Abgleich veranlaßt, bis er dreimal eine zuverlässige Synchronisation festgestellt hat, und danach alle 8 Stunden abgleicht. Dies könnte jedoch für einige Anwendungen zu ungenau sein. Daher kann man Period auch löschen, und neu anlegen als DWORD, um noch feiner steuern zu können. Dann teilt man die Minuten pro Tag (1440) durch die Zeitdauer aller der die Synchronisierung stattfinden soll (z.B. alle 10 Minuten). Diesen Wert trägt man dann als Dezimalwert (Nicht Hexadezimal!) ein, also z.B. 144 wie im Beispiel oben. Nach einem Neustart der Dienstes wird der Host (getestet unter Windows 2000) alle 10 Minuten sychronisieren. (Danke an Rene Kirchner für den Tip!)

In Windows XP sowie Windows Server 2003 gibt es noch eine neue Möglichkeit, nämlich den Wert "SpecialPollInterval" im Registry-Pfad HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient. Hier kann man einen Wert in Sekunden angeben, der regelmäßig zur automatischen Synchronisierung der Uhrzeit führt. Siehe auch den Microsoft - Artikel zu den neuen Einstellmöglichkeiten unter XP / Server 2003.

Konfiguration unter Windows NT

In Windows NT gab es den W32Time Service noch nicht; dort muß man sich anderweitig behelfen. Man kann einem NT Server vorgeben, daß er als "Domain Time Source Server" fungieren soll, und zwar über den Registry - Key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters Eintrag: TimeSource Datentyp: REG_DWORD Inhalt: 1

Ein Client in der NT - Domain kann dann über folgenden Kommandozeilenaufruf mit dem Server synchronisiert werden:

NET TIME /DOMAIN:xxx /SET

wobei xxx der Name der Domäne ist. Das funktioniert auch, wenn der Domain Controller z.B. ein Windows 2000 Server ist, der im Abwärtskompatibilitätsmode eingerichtet wurde (also kein reiner 2000 - Betrieb).

Kommandozeilen - Befehle: ab Windows 2000

Zum Anhalten und starten des W32Time Dienstes kann man aufrufen:

net stop w32time net start w32time

Um die Zeit manuell abzurufen, kann man folgenden Befehl nutzen:

net time /SET

Dieser Befehl verlangt eine Bestätigung mit "J" vom Benutzer; dies kann umgangen werden mit folgendem Befehl:

net time /SET /YES

der erwartet keinerlei Bestätigung (danke an Rene Frauchiger für den Tip).

Um die Zeit vom Domain Controller abzugleichen, egal, welche externe Quelle gerade eingestellt ist, kann man aufrufen:

net time /DOMAIN /SET

Auch hier ist analog die Bestätigung mit "J" nötig.

Möchte man die externe Zeitquelle konfigurieren per Kommandozeile, dann kann man dies erreichen über:

net time /setsntp:SERVERNAME

wobei Servername der Name oder die IP - Adresse des Server ist, der als Zeitquelle dient. Die Dokumentation ist hier teilweise widersprüchlich, es gibt zwei Quellen, die besagen, man könne hier eine Liste von Servern eingeben, sie nennt aber kein Trennzeichen und auch keine Iterationsvorschrift. Eine anderer Microsoft - KnowledgeBase - Artikel weist darauf hin, daß diese Aussage falsch sei, und stets nur ein Server konfiguriert werden könne.

Der Befehl "NET TIME" ist aber als deprecated erklärt worden und wird bald nicht mehr unterstützt. Seit Windows XP gibt es den Befehl w32tm, der den NET TIME - Befehl ersetzen soll. Hier ein Beispielaufruf:

C:\>w32tm /config /syncfromflags:manual /manualpeerlist:ptbtime1.ptb.de,ptbtime2.ptb.de C:\>w32tm /config /update

Dieser Befehl legt unsere beiden PTB-Server als Zeitquelle fest und aktualisiert die Konfiguration des W32Time - Dienstes.

C:\>w32tm /resync

Erzwingt ein Abrufen der Uhrzeit vom eingestellten Zeitserver, und ein resynchronisieren der lokalen Uhr. Erzeugt auch einen Eintrag im Systemlog.

Debugging des Zeitdienstes in Problemfällen ist ein ganz schwieriges Thema. Microsoft beschreibt zum Beispiel in KB-Artikel Q307937, wie man den Time Service dazu bringen könne, seine Tätigkeit dem Eventlog zu offenbaren, doch ich konnte keine zusätzlich hilfreichen Meldungen feststellen. Man sieht dann aber immerhin jeden einzelnen Versuch des Services, seine Zeit zu aktualisieren; wenn's nicht klappt bekommt man aber auch keinen Hinweis.
Tip: Häufig ist der UDP-Port 123 durch eine Firewall gesperrt, dieser wird aber für das NTP-Protokoll benötigt, das war aus eigener Erfahrung schon öfters der Grund für ein Scheitern der Synchronisation.

weitere Konfigurationsmöglichkeiten: Ab Windows XP / Server 2003

In Windows XP und Server 2003 sind neue Unterordner in der Registry eingeführt worden, in denen man getrennte Konfigurationen durchführen kann, je nachdem, ob man die Client-Eigenschaften oder die Server-Eigenschaften eines Zeitdienstes konfigurieren möchte. Das macht durchaus Sinn, denn selbst ein Zeitserver, der anderen als Synchro-Quelle dient (Server-Rolle), muß seine Zeit bisweilen selbst irgendwo abholen (Client-Rolle).

Um einem Rechner unter XP oder Windows 2003 entsprechend eine Serverrolle zu konfigurieren, muß folgender Eintrag vorhanden sein:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer Eintrag: Enabled Datentyp: REG_DWORD Inhalt: 1

Analog gibt es neben dem Ordner NtpServer auch den Ordner NtpClient, in dem man die Client-Einstellungen vornehmen kann, mit denselben Parametern wie oben unter Konfiguration beschrieben.

Zum manuellen synchronisieren kann man unter XP / Server 2003 folgenden Befehl aufrufen (und der klappt auch ohne Domäne):

w32tm /resync

Debugging des Zeitdienstes in Windows Server 2003 geht so: <Microsoft KB-Artikel Q816043>,

Zeitzonen - Beschriftung

Wen es auch schon immer gestört hat, daß unsere Zeitzone "Amsterdam und Co" heißt, der kann den Namen auch selbst verändern. Die Namen der Zeitzonen stehen in der Registry unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones", der Eintrag für Deutschland liegt unter "W. Europe Standard Time".

Buchtips



cover
Details






cover
Details




"Taschenratgeber: Windows 2000 , Windows XP" Diese Bücher sind der praktische Ratgeber für die tägliche Arbeit von Netzwerkadministratoren in kleinen, mittleren und großen Unternehmen. Ideal für den Arbeitsplatz oder den Einsatz unterwegs, denn diese Bücher zeigen Ihnen sofort die Antworten auf Fragen in den verschiedensten Situationen der Windows 2000 / XP - Administration und des Supports. Aber auch Windows - Poweruser können von diesem Buch profitieren. Übersichtliche Tabellen, Listen, Befehle und zahllose Schritt-für-Schritt-Anleitungen zeichnen diese Bücher aus: kurz, klar, präzise.

Win 2000
cover
Details


Win XP / 2003
cover
Details


"Windows Befehle - kurz & gut" von Aeleen Frisch enthält praktisch alle Kommandozeilenbefehle, die man unter Windows zur Verfügung hat. Angefangen von den klassischen DOS - Befehlen über die Active Directory Konfiguration bis zur Prozeß- und Threadverwaltung ist alles drin, was das Herz des Skript - Programmierers begehrt.

Kleines, wertvolles Taschenbuch für weniger als 10 Euro: ein Muß für jeden Windows - Administrator.

Links zu verwandten Bereichen

Übersicht über die Registry-Einstellungen für den W32Time Service

How to configure an authoritative time server in Windows Server 2003

How to Configure an Authoritative Time Server in Windows 2000

How to Configure an Authoritative Time Server in Windows XP

Infos zur voreingestellten Konfiguration innerhalb einer Domäne

Detaillierte Dokumentation zum W32Time Service (Word-Dokument).

Windows NT, Zeit-Synchronisation in der Domäne

How to turn on debug logging in the Windows Time Service

Support, Feedback, Anregungen

Alles verstanden ? Oder noch Fragen ? Wir freuen uns über Feedback zu den Tips, auch über Verbesserungsvorschläge. Schreiben Sie an support@a-m-i.de.