Configurer le NTP sous Windows Server 2012

I. Présentation

Dans ce tutoriel, nous verrons comment configurer le service NTP sous Windows Server 2012/2012 R2. Il est à noter que la commande "net time" n'est plus utilisée, désormais, la commande w32tm doit être utilisée lors de la configuration du NTP sous Windows.

Vous me direz, dans un domaine Microsoft que l'on trouve souvent en environnement d'entreprise, c'est le contrôleur de domaine disposant du rôle FSMO d'émulateur PDC qui distribue l'heure aux clients. Certes, mais il faut bien que ce serveur récupère lui-même l'heure sur un autre serveur initialement pour pouvoir la distribuer par la suite. Que ce soit dans un environnement avec ou sans domaine, il est toujours bon de savoir configurer le service NTP sous Windows.

Concernant, le protocole NTP n'oubliez pas qu'il utilise le port 123 via UDP.

II. Le cas d'Hyper-V

Pour ma part, pour réaliser ce tutoriel je suis sur Windows Server 2012 sur une machine virtuelle sous Hyper-V. Si comme moi vous êtes sous Hyper-V, pensez à désactiver la synchronisation date/heure offerte par les services d'intégration.

Faites un clic droit sur la machine virtuelle dans le gestionnaire Hyper-V puis cliquez sur "Paramètres". Ensuite, dans la section "Gestion" cliquez sur "Services d'intégration" et sur la droite décochez "Synchronisation date/heure" puis validez.

w32tm1

III. Configurer le service NTP

Désormais, passons à la configuration du service NTP. Ouvrez une console PowerShell en tant qu'administrateur pour pouvoir effectuer les modifications de configuration.

Saisissez la commande suivante (explications juste après) :

w32tm /config /manualpeerlist:fr.pool.ntp.org /syncfromflags:manual

Avec plusieurs serveurs NTP :

w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org" /syncfromflags:manual

Le commutateur "/config" permet d'indiquer que l'on passe en mode configuration, "/manualpeerlist" permet de définir une liste de serveur(s) NTP à utiliser. Enfin, "/syncfromflags:manual" indique que l'on indique le(s) serveur(s) NTP indiqué(s) dans "/manualpeerlist".

Le commutateur "/syncfromflags:manual" peut avoir plusieurs valeurs :

- MANUAL: Synchroniser à partir de la liste définie dans Manualpeerlist

- DOMHIER : Synchroniser à partir d'un contrôleur de domaine de l'AD

- NO : Synchroniser à partir d'aucune des sources

- ALL : Synchroniser à partir du domaine et des entrées manuelles

Puis on redémarre le service w32time pour la prise en charge des modifications :

Restart-Service w32time

w32tm2

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.

IV. Vérification 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\

Sous cette clé, vous retrouverez l'ensemble du registre concernant ce service. Pour retrouvez la liste de serveur(s) descendez encore d'un cran sur la clé "Parameters". Ensuite, jetez un œil sur la valeur "NtpServer" et vous devez retrouver votre liste.

w32tm3

V. Afficher le statut du service

Pour obtenir le statut actuel du service w32time, saisissez la commande suivante :

w32tm /query /status

Vous obtiendrez ce type de résultat avec des infos intéressantes :

w32tm4

VI. Mode debug

Le mode debug peut être utile si vous rencontre des problèmes et/ou pour contrôler ce qu'il se passe, voici donc la commande pour l'activer et celle pour le désactiver ensuite :

w32tm /debug /enable /file:C:\w32time.log /entries:0-300 /size:20971220

Les options précisées sont obligatoires, "/file" permet d'indiquer un fichier de log pour stocker les infos, "/entries:0-300" permet d'indiquer que l'on prend tous les types d'infos disponibles afin d'avoir un journal le plus complet possible, enfin, "/size" indique la taille limite en octets du fichier de debug.

Pour désactiver le mode debug :

w32tm /debug /disable

w32tm5

VII. Forcer la synchronisation

Pour exécuter une synchronisation immédiate manuellement, exécutez la commande suivante :

w32tm /resync

w32tm6

Pour encore plus d'options consultez l'aide de la commande w32tm, vous pouvez aussi utiliser notre forum pour obtenir de l'aide.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5500.Voir tous les posts

23 thoughts on “Configurer le NTP sous Windows Server 2012

  • 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 !

    Répondre
  • 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 « / »

    Répondre
  • Merci Franc, j’avais des erreurs aussi !! Great job!

    Répondre
  • 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.

    Répondre
  • 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

    Répondre
  • 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… ://

    Répondre
    • 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

      Répondre
  • Merci beaucoup vous m’avez vraiment aider

    Répondre
  • 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 ?

    Répondre
  • @Benjamin

    j’imagine que les ports ntp (123) sont ouverts en udp?

    Répondre
  • 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.

    Répondre
    • Bonjour,

      Il faut exécuter la commande dans une console PowerShell, et non l’invite de commandes ;-).

      Cordialement,
      Florian

      Répondre
  • 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

    Répondre
    • 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…

      Répondre
      • 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!!!

        Répondre
          • 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.

            Répondre
  • 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.

    Répondre
  • Bonjour,

    une petite erreur pour désactiver le mode debug la commande est « w32tm /debug /disable » et pas « w32tm /disable »

    Répondre
  • l’heure restera bonne mais s’il n’ y a plus accès à l’internet?

    Répondre
    • J’allais dire même s’il n’y a plus accès à l’internet il y aura synchronisation

      Répondre

Répondre à Benjamin Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.