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
- Les ordinateurs membres du domaine synchronisent leurs horloges avec le controleur de domaine aupres duquel ils se sont authentifies
- Les controleurs de domaine se synchronisent avec le PDC Emulator de leur domaine
- 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
| Source | Adresse | Notes |
|---|---|---|
| NTP Pool Project | 0.pool.ntp.org a 3.pool.ntp.org | Pool distribue, choix le plus courant |
| NIST | time.nist.gov | Serveur de temps du gouvernement americain |
time.google.com | Utilise l’approche “leap smearing” | |
| Microsoft | time.windows.com | Par 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
- NtpServer :
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
-
Verifiez si le DC connait le PDC Emulator :
w32tm /query /sourceDoit afficher le nom du PDC Emulator.
-
Verifiez l’etat de la replication :
repadmin /replsummary -
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, definisseztools.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 /forceimmediatement 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.