Windows Server tijdsynchronisatie en NTP-configuratie

Overzicht

Dit artikel behandelt de werking van tijdsynchronisatie in een Windows Server-domeinomgeving.
We bespreken het ontwerp met de PDC-emulator als referentiepunt, de configuratie van de w32time-service, de toepassing van groepsbeleidsobjecten (GPO) en aandachtspunten in virtuele omgevingen.


Variabele referentie

Variabele Voorbeeld Beschrijving
<<PDC_HOST>> DC01.contoso.local PDC-emulator (tijdreferentie van het domein)
<<SECONDARY_DC>> DC02.contoso.local Andere domeincontrollers
<<NTP_SERVER>> ntp.nict.jp Externe NTP-servernaam of IP-adres
<<CLIENT_HOST>> SRV01.contoso.local Lidserver of client
<<DOMAIN_NAME>> contoso.local Active Directory-domeinnaam

Stap 1: Basisstructuur van tijdsynchronisatie

Binnen Active Directory volgt tijdsynchronisatie een hiërarchische structuur:

Niveau Synchronisatiebron Beschrijving
PDC-emulator Externe NTP-server Centrale tijdsbron van het domein
Andere DC’s PDC-emulator Houdt domeinbrede synchronisatie bij
Lidservers / Clients Dichtstbijzijnde DC Synchroniseert automatisch voor Kerberos-consistentie

In een werkgroepomgeving moet elke server handmatig een NTP-server instellen.


Stap 2: Externe NTP-configuratie van de PDC-emulator

De PDC-emulator fungeert als de enige betrouwbare tijdsbron in het domein.

# Externe NTP-servers instellen (meerdere mogelijk)
w32tm /config /manualpeerlist:"ntp.nict.jp time.google.com" /syncfromflags:manual /reliable:yes /update

# Adverteren als betrouwbare tijdsbron
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 5 /f

# Service herstarten
net stop w32time && net start w32time

Controleer:

w32tm /query /configuration
w32tm /query /status

Stap 3: Synchronisatie van andere DC’s en leden

Andere domeincontrollers en leden verkrijgen hun tijd automatisch van de PDC, maar dit kan ook handmatig worden ingesteld.

# Volg de domeinhiërarchie
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time

Forceer synchronisatie en controleer de status:

w32tm /resync /force
w32tm /query /status

Stap 4: Uniform tijdsbeleid via GPO (PowerShell)

Tijdsinstellingen kunnen centraal worden beheerd via Groepsbeleid (GPO).
Hier wordt de volledige procedure met PowerShell uitgevoerd.


1. GPO-module laden en beleid controleren

Import-Module GroupPolicy

# Lijst van GPO's
Get-GPO -All | Select-Object DisplayName, Id, GpoStatus

# Controleer of Default Domain Policy bestaat
Get-GPO -Name "Default Domain Policy" | Select-Object DisplayName, ModificationTime

2. Controleer huidige tijdsinstellingen

# Controleer bestaande waarden (indien leeg, nog niet ingesteld)
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

Een foutmelding “niet gevonden” betekent simpelweg dat er nog geen waarde is ingesteld.


3. NTP-client inschakelen en configureren

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

# Synchronisatiemodus instellen (NT5DS=domein / NTP=extern)
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName Type -Type String -Value "NT5DS"

# Externe NTP-server (alleen voor PDC)
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName NtpServer -Type String -Value "<<NTP_SERVER>>,0x8"

# Poll-interval in seconden
Set-GPRegistryValue -Name "Default Domain Policy" `
  -Key "HKLM\SOFTWARE\Policies\Microsoft\W32Time\TimeProviders\NtpClient" `
  -ValueName SpecialPollInterval -Type DWord -Value 3600

4. Controleer GPO-koppeling en toepassingsbereik

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

5. Pas GPO toe en controleer

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

6. Controleer toegepaste registerwaarden

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

Voorbeelduitvoer:

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

Let op bij virtuele omgevingen

In virtuele omgevingen (Hyper-V, VMware) kunnen conflicten ontstaan wanneer de host en gast beide tijd synchroniseren.
Veelvoorkomende oorzaken:

  • Zowel host- als VM-synchronisatie actief
  • PDC draait als VM met afwijkende NTP-bron
  • Snapshots of migraties veroorzaken tijdsverschillen

Aanbevolen configuratie:

  • Schakel hostsynchronisatie uit op de PDC-emulator
  • Laat overige VM’s synchroniseren met de host
  • Synchronisatie tussen DC’s uitsluitend via w32time

Testen en probleemoplossing

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

# Servicestatus controleren
Get-Service w32time

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

Samenvatting

  • De PDC-emulator is de enige betrouwbare tijdsbron in het domein.
  • Alleen de PDC gebruikt externe NTP-servers; andere systemen volgen domhier.
  • In virtuele omgevingen moet hostsynchronisatie op de PDC worden uitgeschakeld.