Configuration du NTP sous Windows Server avec w32tm
Sommaire
I. Présentation
Ce tutoriel explique comment configurer le service NTP sous Windows Server 2025, Windows Server 2022 et les versions antérieures. Il explique comment effectuer la configuration en ligne de commande à l'aide de w32tm, la commande de référence pour la configuration du NTP sous Windows.
Rappelons quelques règles pour la synchronisation NTP des machines Windows Server :
- Si le serveur est un contrôleur de domaine Active Directory avec le rôle Emulateur PDC, il doit se synchroniser vers une source externe (manuel)
- Si le serveur est un contrôleur de domaine Active Directory (non PDC), il doit se synchroniser sur le serveur Emulateur PDC (automatique)
- Si le serveur est un serveur membre du domaine Active Directory, il doit se synchroniser sur un contrôleur de domaine (automatique)
- Si le serveur est dans un groupe de travail, il est judicieux de déterminer une source de temps fiable (manuel)
Le premier scénario évoqué dans cette liste sera abordé dans un article dédié. Ici, nous aborderons le dernier point : la nécessité de configurer manuellement Windows Server pour préciser une source de temps à utiliser comme référence pour synchroniser l'horloge Windows.
Note : pour rappel, le protocole NTP est utilisé pour la synchronisation de l'horloge. Ce protocole utilise le port 123 via UDP.
Version originale de l'article : 10 février 2014
II. Configurer le service NTP
Sur Windows Server (et Windows), la synchronisation de l'horloge dépend d'un service nommé "Temps Windows", associé au nom technique "w32time". Sa configuration s'effectue par l'intermédiaire de la ligne de commande via un outil nommé w32tm. Il contient l'ensemble des options nécessaires pour consulter et modifier la configuration, et diagnostiquer un éventuel problème de fonctionnement du service.
A. Afficher le statut du Temps Windows
Vous pouvez afficher l'état du service Temps Windows, de façon succincte, via cette commande :
w32tm /query /status
Il retourne une sortie similaire à celle-ci :
Indicateur de dérive : 3(Non synchronisé)
Couche : 1 (Référence principale, synchronisée par l’horloge du réveil)
Précision : -23 (119.209ns par battement)
Délai de racine : 0.0388978s
Dispersion de racine : 0.0100002s
ID de référence : 0x564D5450 (Nom de la source : "VMTP")
Heure de la dernière synchronisation réussie : 25/11/2025 19:38:34
Source : VM IC Time Synchronization Provider
Intervalle d’interrogation : 6 (64s)
La première ligne fournit déjà une information importante : Indicateur de dérive : 3(Non synchronisé). Le service de temps n’est pas synchronisé avec une source fiable. Cela se confirme avec la valeur indiquée comme source : Source : VM IC Time Synchronization Provider. Cette valeur est précisée lorsque le serveur local synchronise son horloge par l'intermédiaire de l'hyperviseur (ici, Hyper-V), ce qui est confirmé aussi par la valeur VMTP. C'est une fonctionnalité offerte aux invités par certains hyperviseurs, dont Hyper-V qui active ce paramètre par défaut (voir ci-après).
Par ailleurs, la ligne Heure de la dernière synchronisation réussie indique la date et l'heure de la dernière synchronisation de l'horloge réussie sur cette machine.
Pour obtenir la configuration détaillée et complète du service w32time, vous devez utiliser cette commande :
w32tm /query /configuration
Voici un exemple (partiel) :

B. Configurer manuellement le NTP
Notre objectif désormais sera de spécifier une source de temps fiable que notre serveur doit utiliser. Nous pouvons utiliser une source externe, comme le pool de serveurs 0.fr.pool.ntp.org ou un autre serveur de confiance, comme un contrôleur de domaine Active Directory (utile sur un serveur en groupe de travail).
Ici, notre objectif sera de spécifier le serveur NTP suivant : srv-adds-01.it-connect.local.
Voici la marche à suivre pour effectuer la configuration manuellement sur un serveur.
Arrêtez le service :
net stop w32time
# PowerShell :
Stop-Service w32time
Définissez le serveur NTP à utiliser pour la synchronisation :
w32tm /config /manualpeerlist:"srv-adds-01.it-connect.local,0x8" /syncfromflags:manual
Vous remarquerez que chaque serveur est suivi du flag ,0x8, qui indique une utilisation en mode client NTP.
Démarrez le service NTP :
net start w32time
# PowerShell :
Start-Service w32time
Consultez la source de synchronisation avec la commande précisée ci-dessous. Vous pouvez répéter l'opération plusieurs fois, car, en principe, la valeur va changer d'un moment à un autre.
w32tm /query /source
Voici un exemple parlant :

Dans le cas où vous souhaitez préciser plusieurs sources, vous devez ajuster la valeur de l'option /manualpeerlist. Voici un exemple avec deux sources : un serveur local et une source externe de confiance.
w32tm /config /manualpeerlist:"srv-adds-01.it-connect.local,0x8, 1.fr.pool.ntp.org,0x8" /syncfromflags:manual
Le paramètre /syncfromflags:manual a son importance car il force le service de Temps Windows à se synchroniser via les serveurs spécifiés au niveau du paramètre /manualpeerlist.
Tout en sachant que le paramètre /syncfromflags:manual peut avoir plusieurs valeurs :
- MANUAL : synchroniser à partir de la liste définie manuellement.
- DOMHIER : synchroniser à partir d'un contrôleur de domaine Active Directory
- NO : synchroniser à partir d'aucune des sources
- ALL : synchroniser à partir du domaine et des entrées manuelles
En environnement professionnel, j'ai toujours utilisé les modes MANUAL et DOMHIER.
La configuration du service NTP via la commande w32tm peut s'arrêter à cela et ce sera fonctionnel. Les parties suivantes sont là en supplément.
C. Vérifier la configuration NTP dans le registre
Si vous souhaitez vérifier dans le registre que votre liste de serveur(s) NTP est prise en charge, parcourez-le jusqu'à la clé suivante :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\
Pour visualiser le serveur NTP configuré, descendez dans l'arborescence jusqu'à cet emplacement :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
Voici un exemple :

D. Mode debug
Le mode debug peut être utile si vous rencontrez des problèmes de synchronisation ou si vous souhaitez analyser en détail le fonctionnement du service de temps. Voici la commande pour l’activer, ainsi que celle pour le désactiver ensuite :
w32tm /debug /enable /file:C:\w32time.log /entries:0-300 /size:20971220
Quelques explications au sujet de cette commande :
/filepermet de définir le fichier journal dans lequel les informations de debug seront enregistrées./entries:0-300indique que l’on souhaite capturer l’ensemble des catégories d’événements (0 à 300), ce qui permet d’obtenir un journal complet./sizedéfinit la taille maximale du fichier de log, en octets. Ici, environ 20 Mo.
Pour désactiver le mode debug :
w32tm /debug /disable

E. Forcer la synchronisation
Pour exécuter une synchronisation immédiate manuellement, exécutez la commande suivante :
w32tm /resync

F. La synchronisation NTP avec les machines virtuelles
Certains hyperviseurs, comme Hyper-V, intègrent une option pour fournir l'heure aux invités (machines virtuelles) via un service dédié. C'est le cas des machines virtuelles Hyper-V où l'option "Synchronisation date/heure" visible dans les paramètres des services d'intégration est activée par défaut. Ainsi, la machine virtuelle va synchroniser son horloge avec le serveur Hyper-V, plutôt qu'avec une autre source de temps.
Je vous recommande de désactiver cette option sur toutes les machines intégrées à un domaine Active Directory, y compris sur les contrôleurs de domaine.

Sur une machine où l'option est activée, si vous consultez le statut du service Temps Windows, vous verrez que la commande w32tm retourne cette valeur : VM IC Time Synchronization Provider.
G. Reset du service NTP de Windows
Si vous ne parvenez pas à mettre en place votre configuration, vous pouvez réinitialiser le service NTP de Windows. Cela va permettre de repartir sur une base saine, avec une nouvelle configuration.
Voici la séquence complète de commandes à exécuter dans le contexte de cet article pour effectuer la réinitialisation :
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /config /manualpeerlist:"srv-adds-01.it-connect.local,0x8" /syncfromflags:manual /update
net stop w32time
net start w32time
Ces commandes vont effectuer les actions suivantes (dans l'ordre) :
- Permet d’appliquer proprement la configuration (arrêter et démarrer le service)
- Arrêter le service de gestion du temps
- Supprimer la configuration actuelle du service, ainsi que son entrée dans le registre.
- Réinstaller et recréer la configuration par défaut du service dans le registre.
- Démarre le service nouvellement créé.
- Restaurer le mode de synchronisation en mode manuel avec le serveur NTP personnalisé.
- Arrêter et démarrer le service NTP (recharger la configuration).
III. Récapitulatif des commandes w32tm
Pour terminer, voici une cheat sheet w32tm sous la forme d'un tableau récapitulatif qui regroupe les commandes évoquées dans cet article et quelques bonus.
| Commande | Fonction / Description |
|---|---|
w32tm /query /status | Afficher l’état de la synchronisation (source, décalage, précision…). |
w32tm /query /source | Afficher la source de temps actuelle (NTP, Hyper-V, Local CMOS…). |
w32tm /query /configuration | Montrer toute la configuration du service Temps Windows |
w32tm /query /peers | Lister les serveurs NTP configurés et leur état. |
w32tm /stripchart /computer:0.fr.pool.ntp.org | Tester la connectivité entre votre machine et un autre serveur (et voir l'écart de synchronisation). |
w32tm /config /manualpeerlist:"0.fr.pool.ntp.org,0x8" /syncfromflags:manual | Configurer un serveur NTP externe. |
w32tm /config /syncfromflags:domhier /update | Revenir à la hiérarchie Active Directory pour la synchronisation. |
w32tm /config /reliable:yes /update | Déclarer la machine comme source de temps fiable (à utiliser sur le contrôleur de domaine Emulateur PDC). Ne fonctionne pas sur les serveurs qui ne sont pas DC. |
w32tm /resync | Forcer une resynchronisation immédiate avec la source actuelle. |
w32tm /resync /force | Forcer la synchronisation même si Windows pense que tout est OK. |
net stop w32time / net start w32time | Arrêter / démarrer le service w32time. |
w32tm /debug /enable /file:C:\w32time.log /entries:0-300 /size:20971220 | Active le mode debug complet (log détaillé). |
w32tm /debug /disable | Désactive le mode debug. |
Pour encore plus d'options, consultez l'aide de la commande w32tm.
IV. Conclusion
Suite à la lecture de cet article, vous devriez être en mesure de configurer le service NTP de Windows Server grâce à l'arsenal d'options intégré à la commande w32tm.
Sur Windows 11, la configuration est également possible avec w32tm ou en passant par l'interface graphique. Ce tutoriel aborde le sujet :
FAQ
Pourquoi configurer le service NTP sous Windows Server ?
La synchronisation de l'horloge est importante pour les journaux de Windows Server, notamment les journaux d'audit liés à la sécurité, car cela permet d'avoir une temporalité précise et réelle au niveau des événements. C'est d'autant plus important si un rapprochement doit être fait entre les journaux de plusieurs serveurs. De plus, c'est essentiel pour l'authentification avec le protocole Kerberos et le bon fonctionnement d'un Active Directory d'une façon générale.
Quels serveurs NTP publics sont recommandés en France ?
Vous pouvez utiliser les pools de serveurs français comme 0.fr.pool.ntp.org, 1.fr.pool.ntp.org, etc. C'est une source fiable avec plusieurs centaines de serveurs, cela permet d'utiliser des serveurs proches d'un point de vue géographique. Il y a probablement d'autres sources recommandables.
Puis-je synchroniser les serveurs membres du domaine sur une source NTP externe ?
Oui, mais la bonne pratique en environnement Active Directory est que seul le contrôleur de domaine avec le rôle Emulateur PDC interroge la source externe, puis qu'il soit utilisé comme référence par les autres serveurs internes. Un serveur membre pourra solliciter n'importe quel contrôleur de domaine pour synchroniser son horloge.
Faut-il utiliser un serveur NTP interne dans les grandes organisations ?
Oui. Microsoft recommande, pour les environnements distribués (multi-sites), d’utiliser un serveur NTP interne centralisé. Cela réduit la latence, évite la dépendance Internet et homogénéise la synchronisation de l'horloge entre les machines situées sur des sites distants.
Comment vérifier l’état du service de temps Windows ?
Exécutez la commande w32tm /query /status pour obtenir le statut global du service Temps Windows. Cette commande retourne quelques informations pertinentes comme la source de synchronisation, le décalage, etc.


Bonjour,
Je rencontre un problème l’heure est en avance de 2minutes pour rapport a l’horloge parlante pour exemple …. et ma question est :
est ce qu’il faut désactiver la synchronisation date/heure que sur la VM du serveur contrôleur de domaine disposant du rôle FSMO d’émulateur PDC ou sur toutes les VM du domaine ?
Car après j’ai fait tout comme ton tuto mais sans succès….
Merci par avance de vos réponses !
Bonjour Audrey,
En cas de VM, il faut commencer par vérifier si celle-ci ne se synchronise pas avec son hôte (hyperviseur).
Comme l’a indiqué Floriant:
– Les postes clients et serveurs membres se synchronisent sur leur contrôleur de domaine.
– Les contrôleurs de domaine se synchronisent sur le PDC émulateur de leur domaine.
J’ajouterai, en cas de forêt multi-domaine:
– Le PDC émulateur de chacun des domaines se synchronisent sur le PDC émulateur de la racine de la forêt.
Donc en conclusion, seul le PDC émulateur de la racine de la forêt doit se synchroniser à une base de temps externe (à lui-même)
Il y a une petite erreur, il faut saisir : w32tm /config /manualpeerlist:fr.pool.ntp.org /syncfromflags:manual et non pas : w32tm /config /manualpeerlist/fr.pool.ntp.org /syncfromflags:manual
Le caractère « : » au lieu de « / »
@franck merci pour la correction. J’avais des erreurs, je ne comprenais pas pourquoi :/
Merci Franc, j’avais des erreurs aussi !! Great job!
Bonjour, dans le paragraphe « III. Configurer le service NTP », ne convient-il pas de remplacer « Enfin, “/syncfromflags:manual” indique que l’on indique le(s) serveur(s) NTP indiqué(s) dans “/manualpeerlist“. » par Enfin, “/syncfromflags:manual” indique que l’on utilise le(s) serveur(s) NTP indiqué(s) dans “/manualpeerlist“.
Sinon merci beaucoup pour vos explications.
Bonsoir,
Merci pour ce tuto, tout fonctionne parfaitement chez moi.
Par contre lorsque je fais la commande « w32tm /monitor », à la fin du compte-rendu j’obtiens ce message :
Attention :
La résolution de nom inverse est conseillée. Une erreur peut
se produire car le champ d’ID de référence des paquets de temps diffère entre
les implémentations NTP et peut ne pas utiliser les adresses IP.
Comment faire pour corriger ce warning ?
Merci par avance
hi,
est ce que l’on peut configurer les serveurs membres Active Directory pour se synchroniser directement avec le serveur de temps externe ? ou est ce qu’il y a que les serveurs en workgroup et les controleurs de domaine qui peuvent s’adresser a une source externe ?
pour ma part avec des w2k12r2, w32tm /resync dit OK mais l’heure demeure differente de celle du PDC… ://
Bonjour Yosh,
Ce n’est pas normal que l’heure soit différente, quelle est la source pour le temps ? C’est bien ton PDC ? Tu peux le savoir avec la commande suivante :
w32tm /query /source
Cordialement,
Florian
Bonjour Yosh,
Quand tu dis que tu as une heure différente s’agit de quelques minutes ou se sont des heures ?
Si ce sont des heures, as-tu vérifié que tes machine sont tous sur la même zone de temps (timezone) ?
Merci beaucoup vous m’avez vraiment aider
Bonjour, j’ai un soucis de synchro horaire sur mes serveurs 2012. J’ai un serveur de temps externe avec antenne GPS sur mon site. Je veux que mes serveur 2012 (installation en Groupe de travail (Workgroup, demande du client)) se synchronisent sur ce serveur de temps.
J’ai retiré le trigger sur le service Windows Time pour le mettre sur la connexion au réseau (d’origine sur la connexion au domaine), mais mes serveurs refusent toujours de se synchroniser (adressage IP OK, j’ai accès à la webpage du NTP et je peux le pinger). Alors que mes serveurs 2008 se synchronisent parfaitement.
Quelqu’un a une idée ?
@Benjamin
j’imagine que les ports ntp (123) sont ouverts en udp?
Bonjour, à la 2e étape, j’obtiens une erreur:
C:\Users\Administrator>Restart-Service w32time
‘Restart-Service’ is not recognized as an internal or external command, operable program or batch file.
Bonjour,
Il faut exécuter la commande dans une console PowerShell, et non l’invite de commandes ;-).
Cordialement,
Florian
hello je comprends pas je fais tout le debut cela passe bien, tout est ok dans le registre or lorsque je fais le /query /status nom de la source « LOCL » et source local « Local CMOS Clock ».
le port 123 est ouvert donc je ne vois pas ou est le probleme
Bonjour,
Je rencontre le même soucis. Plus de GPO active, firewall autorise le NTP (port 123 UDP), clés de registre OK mais /query /status me donne aussi Couche : 1 (Référence principale, synchronisée par l’horloge du réveil) soit local cmos.
Lors du w32tm /resync j’ai l’erreur : L’ordinateur ne s’est pas resynchronisé car aucune donnée de temps n’était
disponible. Pourtant dans les logs firewall il y a bien du traffic sur le port 123 qui est autorisé. Y a-t’il autre chose qui peut bloquer ?
w32tm /query /configuration :
NtpClient (Locale)
DllName: C:\Windows\system32\w32time.dll (Locale)
Enabled: 1 (Locale)
InputProvider: 1 (Locale)
AllowNonstandardModeCombinations: 1 (Locale)
ResolvePeerBackoffMinutes: 15 (Locale)
ResolvePeerBackoffMaxTimes: 7 (Locale)
CompatibilityFlags: 2147483648 (Locale)
EventLogFlags: 1 (Locale)
LargeSampleSkew: 3 (Locale)
SpecialPollInterval: 3600 (Locale)
Type: NTP (Locale)
NtpServer: pool.ntp.org (Locale)
Je ne sais plus ou chercher…
Idem en win srv2016std.
J’ai tout vérifié:
– base de registre ok avec info fr.pool.ntp.org
– gpo pas de gpo qui me forcerait une synchro de temps
– firewall désactivé pour etre sûr que ce n’est pas lui que m’embête
– synchro de la vm hyperV avec host désactivée,
… mais la commande /query /status me donne toujours LOCAL CMOS GRRRR!!!
Bonjour,
As-tu pensé à redémarrer le service win32time ?
Cdlt.
Bonjour Florian,
Malgré le restart ou même après avoir essayé avec le stop puis start ça m’indique aussi la même chose concernant le statuts. L’horloge semble toujours fonctionner en local.. au lieu de se caler sur le serveur ntp.
Question subsidiaire: Ton serveur ne serai pas un VM … Qui se synchroniserai son temps sur son hôte (hyperviseur) ?
Bonjour Florian,
J’ai une question concernant le Serveur NTP.
Comment créer un POOL NTP quand on a 2 contrôleurs de domaines sur lesquels on veut mettre un serveur NTP?
Je te remercie par avance.
Bonjour,
une petite erreur pour désactiver le mode debug la commande est « w32tm /debug /disable » et pas « w32tm /disable »
Bonjour,
Merci pour l’info, c’est corrigé.
l’heure restera bonne mais s’il n’ y a plus accès à l’internet?
J’allais dire même s’il n’y a plus accès à l’internet il y aura synchronisation
Bonjour Florian,
Un petit bémol concernant la synchronisation du PDC émulateur … Cela ne concerne que celui de la racine de la forêt. Les autres PDC émulateurs se synchronisant sur celui-ci.
Je rajouterai, pour la synchronisation de PDC émulateur de la racine de la forêt il faut mieux le faire par GPO avec un filtre WMI pour le « fixer » sur l’ordinateur qui a ce rôle. En cas de déplacement du FSMO PDC emulator le changement se fait « automatiquement ».
Hello,
Oui deux bonnes remarques. Ce comportement est bien visible sur le schéma intégré à l’article et repris de la documentation Microsoft.
Concernant le second point, j’ai hésité à intégrer la création de la GPO, mais j’ai préféré garder la configuration statique : il est tout de même assez rare de déplacer un rôle FSMO. Mais sans cette GPO, le jour où cela arrive, il faudra penser à la partie NTP en effet !