La synchronisation horaire precise est essentielle dans les environnements Windows, en particulier dans les domaines Active Directory ou l’authentification Kerberos exige que les horloges soient a moins de 5 minutes d’ecart. Si l’heure derive trop, les utilisateurs ne peuvent pas se connecter, les services echouent a s’authentifier et la replication peut se briser. Ce guide explique comment fonctionnent les services de temps Windows (W32Time), comment les configurer correctement dans un environnement AD et comment depanner les problemes de synchronisation horaire.

Comment fonctionne la synchronisation horaire Windows

La hierarchie NTP dans Active Directory

Active Directory utilise un modele hierarchique de synchronisation horaire :

External NTP Source (e.g., time.nist.gov, pool.ntp.org)
    └── PDC Emulator (Forest Root Domain)
          └── Domain Controllers
                └── Domain Member Computers
  1. Les ordinateurs membres du domaine synchronisent leurs horloges avec le controleur de domaine aupres duquel ils se sont authentifies
  2. Les controleurs de domaine se synchronisent avec le PDC Emulator de leur domaine
  3. Le PDC Emulator dans le domaine racine de la foret doit se synchroniser avec une source NTP externe fiable

Si le PDC Emulator n’a pas de source de temps externe configuree, il s’appuie sur sa propre horloge materielle, qui peut deriver significativement au fil du temps — en particulier sur les machines virtuelles.

Pourquoi l’heure est importante

  • L’authentification Kerberos a une tolerance maximale par defaut de 5 minutes. Les horloges en dehors de cette fenetre provoquent des echecs d’authentification.
  • La replication AD utilise des horodatages pour resoudre les conflits. Une heure incorrecte peut causer des problemes de replication.
  • La correlation des journaux entre serveurs necessite une heure synchronisee pour une analyse precise des evenements.
  • La validation des certificats depend d’une heure precise pour les verifications d’expiration.
  • Les taches planifiees et les sauvegardes s’executent au mauvais moment si les horloges sont decalees.

Configuration du PDC Emulator pour un NTP externe

La configuration la plus critique est celle du PDC Emulator. C’est la source de temps faisant autorite pour tout le domaine (ou la foret).

Identifier le PDC Emulator

# Find the PDC Emulator
Get-ADDomain | Select-Object PDCEmulator

# Or use netdom
netdom query fsmo

Configurer la source NTP externe

Executez ces commandes sur le PDC Emulator :

# Configure the NTP peers
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org" /syncfromflags:manual /reliable:YES /update

# Restart the Windows Time service
net stop w32time
net start w32time

# Force an immediate sync
w32tm /resync /rediscover

Parametres expliques :

  • /manualpeerlist — Liste de serveurs NTP separes par des espaces
  • /syncfromflags:manual — Synchroniser a partir de la liste de pairs manuelle (pas de la hierarchie du domaine)
  • /reliable:YES — Annoncer ce serveur comme source de temps fiable
  • /update — Appliquer les modifications de configuration

Sources NTP recommandees

SourceAdresseNotes
NTP Pool Project0.pool.ntp.org a 3.pool.ntp.orgPool distribue, choix le plus courant
NISTtime.nist.govServeur de temps du gouvernement americain
Googletime.google.comUtilise l’approche “leap smearing”
Microsofttime.windows.comPar defaut pour Windows hors domaine

Pour la redondance, specifiez plusieurs serveurs dans la liste de pairs.

Configuration des controleurs de domaine

Les controleurs de domaine autres que le PDC Emulator doivent se synchroniser a partir de la hierarchie du domaine (comportement par defaut) :

# Reset a DC to sync from the domain hierarchy
w32tm /config /syncfromflags:domhier /update

# Restart the service
net stop w32time
net start w32time

C’est la configuration par defaut. Vous n’avez besoin d’executer cela que si un DC a ete precedemment configure avec des pairs manuels.

Configuration des ordinateurs membres du domaine

Les membres du domaine se synchronisent automatiquement avec leur DC d’authentification. Aucune configuration n’est normalement necessaire. Si vous devez remplacer :

# Force resync on a client
w32tm /resync

# Check the current time source
w32tm /query /source

Reference des commandes W32tm

Verifier l’etat de la synchronisation

# Show current time source and status
w32tm /query /status

# Verbose status output
w32tm /query /status /verbose

# Show configured peers
w32tm /query /peers

# Show the current configuration
w32tm /query /configuration

Surveiller l’heure dans tout le domaine

# Monitor all DCs in the domain
w32tm /monitor

# Monitor specific computers
w32tm /monitor /computers:DC01,DC02,DC03

# Stripchart (real-time offset display)
w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly

La sortie de /monitor affiche le decalage (en secondes) entre chaque DC et le PDC Emulator. Tout decalage superieur a 1-2 secondes merite une investigation.

Forcer la resynchronisation

# Force resync
w32tm /resync

# Force resync and rediscover peers
w32tm /resync /rediscover

# Force resync on a remote computer
w32tm /resync /computer:WORKSTATION01

Enregistrer et desenregistrer le service

# Re-register the W32Time service (fixes corrupted configurations)
w32tm /unregister
w32tm /register

# Then restart
net start w32time

Configuration via Group Policy

Pour les grands environnements, configurez la synchronisation horaire via Group Policy.

Configurer le PDC Emulator via GPO

Creez un GPO lie a l’OU des Domain Controllers avec un filtre WMI qui cible uniquement le PDC Emulator :

Filtre WMI :

SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 5

(DomainRole 5 = PDC Emulator)

Parametres du GPO :

Naviguez vers :

Computer Configuration > Policies > Administrative Templates > System > Windows Time Service > Time Providers
  • Enable Windows NTP Client : Enabled
  • Configure Windows NTP Client :
    • NtpServer : 0.pool.ntp.org,0x9 1.pool.ntp.org,0x9 2.pool.ntp.org,0x9
    • Type : NTP
    • CrossSiteSyncFlags : 2
    • SpecialPollInterval : 3600

Le flag 0x9 signifie mode NTP avec intervalle de sondage special.

Configurer tous les autres DC via GPO

Creez un GPO separe pour tous les DC avec un filtre WMI qui exclut le PDC :

Filtre WMI :

SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 4

(DomainRole 4 = Domain Controller, pas PDC)

Parametres du GPO :

  • Configure Windows NTP Client :
    • Type : NT5DS (synchroniser a partir de la hierarchie du domaine)

Configurer les membres du domaine

Les membres du domaine se synchronisent a partir de la hierarchie par defaut. Si vous avez besoin d’un GPO :

  • Type : NT5DS

Depannage de la synchronisation horaire

L’heure derive sur un controleur de domaine

  1. Verifiez si le DC connait le PDC Emulator :

    w32tm /query /source

    Doit afficher le nom du PDC Emulator.

  2. Verifiez l’etat de la replication :

    repadmin /replsummary
  3. Forcez la resynchronisation :

    w32tm /resync /rediscover

“The computer did not resync because no time data was available”

Cela signifie que la source de temps configuree est inaccessible :

  • Si sur le PDC Emulator, verifiez que le pare-feu autorise le port UDP 123 en sortie vers les serveurs NTP.
  • Testez la connectivite : w32tm /stripchart /computer:pool.ntp.org /samples:3
  • Verifiez la resolution DNS des noms des serveurs NTP.

L’heure est significativement decalee (plus de 5 minutes)

Kerberos peut empecher l’authentification. Reglez d’abord l’heure manuellement :

# Manually set the time
net time /setsntp:time.nist.gov

# Or set it directly
w32tm /config /manualpeerlist:"time.nist.gov" /syncfromflags:manual /update
net stop w32time
net start w32time
w32tm /resync /force

Sur les machines virtuelles, verifiez egalement :

  • Hyper-V : Desactivez le service d’integration de synchronisation horaire si l’heure de l’hote est incorrecte. Dans Hyper-V Manager > Parametres de la VM > Integration Services, decochez Time Synchronization.
  • VMware : Verifiez les parametres de synchronisation horaire de VMware Tools. Dans le fichier .vmx, definissez tools.syncTime = "FALSE" si vous utilisez la synchronisation horaire AD.

Le service W32Time ne demarre pas

# Re-register the service
w32tm /unregister
w32tm /register
net start w32time

Si cela ne fonctionne pas, verifiez le registre :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time

Assurez-vous que le service est configure avec la valeur Start a 2 (Automatique).

Verifier les journaux d’evenements

Les evenements du service de temps sont enregistres dans :

Event Viewer > Applications and Services Logs > Microsoft > Windows > Time-Service

Verifiez egalement le journal Systeme pour les Event IDs :

  • Event ID 35 — Le service de temps se synchronise maintenant avec…
  • Event ID 36 — Le service de temps n’a pas pu se synchroniser…
  • Event ID 129 — Le fournisseur client NTP ne parvient pas a joindre le serveur…

Considerations pour les machines virtuelles

Les machines virtuelles sont particulierement susceptibles a la derive horaire :

  • Les VM Hyper-V disposent d’un service d’integration de synchronisation horaire qui synchronise l’horloge du guest avec l’hote. Dans les environnements AD, desactivez-le pour les DC afin d’eviter les conflits avec la hierarchie horaire AD.
  • Les VM VMware disposent d’une synchronisation horaire VMware Tools qui peut egalement entrer en conflit avec la synchronisation horaire AD. Desactivez-la sur les DC.
  • Apres la restauration d’une VM a partir d’un snapshot, l’horloge peut etre reglee a l’heure du snapshot. Executez w32tm /resync /force immediatement apres la restauration.

Resume

Les services de temps Windows (W32Time) maintiennent la synchronisation des horloges dans tout votre environnement Active Directory grace a un modele hierarchique. L’etape la plus critique est de configurer le PDC Emulator pour se synchroniser avec une source NTP externe fiable — sans cela, la derive horaire se propagera a tous les membres du domaine. Utilisez w32tm /query /status pour verifier la configuration, w32tm /monitor pour verifier tous les DC et Group Policy pour la configuration a l’echelle de l’entreprise. Sur les machines virtuelles, veillez a eviter les conflits entre la synchronisation horaire de l’hyperviseur et la hierarchie horaire AD.