Windows Server-Zeit­syn­chro­ni­sa­tion und NTP-Konfiguration

Übersicht

Dieser Artikel erläutert die Zeit­synchroni­sierung in einer Windows Server Domänen­umgebung.
Im Fokus stehen der Aufbau der Zeit­hierarchie, die Rolle des PDC-Emulators als Zeitquelle, die Konfiguration des Dienstes w32time, die zentralisierte Verwaltung über Gruppenrichtlinien sowie Besonderheiten in virtuellen Umgebungen.


Variablenreferenz

Variable Beispielwert Beschreibung
<<PDC_HOST>> DC01.contoso.local PDC-Emulator (zeitliche Referenz der Domäne)
<<SECONDARY_DC>> DC02.contoso.local Weitere Domain-Controller
<<NTP_SERVER>> ntp.nict.jp Externer NTP-Server
<<CLIENT_HOST>> SRV01.contoso.local Mitgliedsserver oder Client
<<DOMAIN_NAME>> contoso.local Active Directory Domänenname

Schritt 1: Zeit-Hierarchie in einer Domäne

Active Directory verwendet eine mehrstufige Zeit­hierarchie:

Ebene Synchronisationsquelle Beschreibung
PDC-Emulator Externer NTP-Server Zentrale, vertrauenswürdige Zeitquelle
Andere DCs PDC-Emulator Synchronisierung innerhalb der Domäne
Mitgliedsserver / Clients Nächster DC Gewährleistung konsistenter Kerberos-Authentifizierung

In Arbeitsgruppen muss die NTP-Quelle manuell pro System definiert werden.


Schritt 2: Externe NTP-Konfiguration des PDC-Emulators

Der PDC-Emulator wird als einzige vertrauenswürdige Zeitquelle konfiguriert.

# Externe NTP-Server (mehrere möglich)
w32tm /config /manualpeerlist:"ntp.nict.jp time.google.com" /syncfromflags:manual /reliable:yes /update

# Als vertrauenswürdige Quelle bewerben
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 5 /f

# Dienst neu starten
net stop w32time && net start w32time

Überprüfung:

w32tm /query /configuration
w32tm /query /status

Schritt 3: Konfiguration anderer DCs und Mitglieder

Weitere DCs oder Server synchronisieren sich standardmäßig automatisch mit dem PDC, können aber manuell angepasst werden.

# Synchronisation gemäß Domänenhierarchie
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time

Prüfung:

w32tm /resync /force
w32tm /query /status

Schritt 4: Einheitliche Zeitsynchronisation per GPO (PowerShell)

Zeitbezogene Richtlinien können zentral über Gruppenrichtlinienobjekte (GPOs) gesteuert werden.
Hier erfolgt die komplette Verwaltung per PowerShell.


1. GPO-Modul laden und Richtlinien prüfen

Import-Module GroupPolicy

# GPO-Liste anzeigen
Get-GPO -All | Select-Object DisplayName, Id, GpoStatus

# Default Domain Policy prüfen
Get-GPO -Name "Default Domain Policy" | Select-Object DisplayName, ModificationTime

2. Aktuelle Zeitrichtlinien abfragen

Get-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName Type

Get-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName NtpServer

Eine Fehlermeldung „nicht gefunden“ bedeutet lediglich, dass der Wert noch nicht existiert.


3. NTP-Client aktivieren und konfigurieren

# Aktivierung
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName Enabled -Type DWord -Value 1

# Synchronisationsmodus (NT5DS=Domäne, NTP=extern)
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName Type -Type String -Value "NT5DS"

# Externe Quelle (nur für PDC)
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName NtpServer -Type String -Value "<<NTP_SERVER>>,0x8"

# Abfrageintervall (Sekunden)
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName SpecialPollInterval -Type DWord -Value 3600

4. GPO-Verknüpfung und Geltungsbereich prüfen

Get-GPOReport -Name "Default Domain Policy" -ReportType Html -Path "$env:TEMP\DefaultDomainPolicy.html"

5. GPO anwenden und prüfen

gpupdate /force
gpresult /r
Get-GPResultantSetOfPolicy -ReportType Html -Path "$env:TEMP\gpresult.html"

6. Reale Registry-Werte kontrollieren

reg query "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient"

Beispielausgabe:

Enabled       REG_DWORD  0x1
Type          REG_SZ     NT5DS
NtpServer     REG_SZ     ntp.nict.jp,0x8
SpecialPollInterval REG_DWORD 0xe10

Hinweise für virtuelle Umgebungen

In Hyper-V- oder VMware-Systemen kann es zu Konflikten kommen, wenn Host- und Gastzeitdienste aktiv sind.
Typische Ursachen:

  • Gleichzeitige Host- und VM-Synchronisation
  • PDC läuft virtualisiert und nutzt andere Quelle
  • Snapshots oder Migrationen verändern die Zeit

Empfehlung:

  • Host-Synchronisation auf dem PDC deaktivieren
  • Andere VMs dürfen Host-Zeit nutzen
  • Domäneninterne Synchronisation ausschließlich über w32time

Tests und Fehleranalyse

# NTP-Test
w32tm /stripchart /computer:"<<NTP_SERVER>>" /dataonly /samples:5

# Dienststatus
Get-Service w32time

# Letzte 10 W32Time-Ereignisse
Get-WinEvent -LogName System | Where-Object {$_.ProviderName -eq "Microsoft-Windows-Time-Service"} |
  Select-Object TimeCreated, Id, LevelDisplayName, Message -First 10

Zusammenfassung

  • Der PDC-Emulator ist die einzige vertrauenswürdige Zeitquelle der Domäne.
  • Nur der PDC nutzt externe NTP-Server; alle anderen Systeme verwenden domhier.
  • In virtuellen Umgebungen ist die Host-Synchronisation auf dem PDC zu deaktivieren.