Gestion des NTP Sous Windows dans un environnement HyperV avec Domaine
Contexte
Il est fréquent de voir des PC d’un domaine Windows qui ne sont pas à l’heure. En effet les PC sont configurés pour chercher l’heure sur le Contrôleur de domaine Principal, qui par défaut n’a pas de serveur NTP public pour se synchroniser.
Solution testée sous Windows Server de 2012 à 2019.
Subtilité HyperV
Dans un environnement HyperV, la configuration par défaut de « Services d’intégration » fait en sorte que les VMs synchronisent leurs dates et heures via l’hôte qui les héberge :
Dans ce cas de figure, je préfère appliquer ma configuration coté HyperV ce qui me permet de ne la faire qu’une fois car sinon, pour bien faire, il faudrait l’appliquer au Domaine de votre environnement virtuel et à votre environnement HyperV afin que l’heure ne se décale pas.
Solution
Sur votre contrôleur de domaine principal ou sur votre hôte HyperV selon votre cas de figure, exécuter un PowerShell en tant qu’administrateur et taper la commande suivante :
w32tm /query /status
Cette commande ressort la valeur IP de la source : 172.17.40.1 (IP de l’hyperviseur sur lequel je suis), source « Free-running System Clock » :
Ensuite, taper la commande :
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org" /syncfromflags:manual /reliable:yes
Explication de la commande :
/config permet de passer les commandes pour configurer « w32tm »
/manualpeerlist: définit la liste des serveurs NTP à utiliser, c’est une liste d’adresses DNS et/ou IP séparées par des espaces. Si plusieurs serveurs sont précisés, cette option doit être placée entre guillemets. J’ai fait le choix dans mon exemple de faire confiance aux serveurs NTP de ntp.org.
/syncfromflags: peut avoir l’une des valeurs suivantes :
manual : Synchronise depuis la liste précisée précédemment (manualpeerlist)
domhier : synchronise depuis un AD
no : synchronise à partir
all : combinaison de « manual » + « domhier »
/reliable: définit si cet ordinateur est une source de temps fiable. Ce paramètre est uniquement significatif sur les contrôleurs de domaine.
Yes
No
Il faut maintenant redémarrer le service :
restart-service w32time
w32tm /query /status
Cette fois-ci la commande ressort la valeur IP de la source : 54.37.80.132, source « 0.pool.ntp.org » :
Heure avant forçage de la synchro :
Maintenant un petit forçage de la synchronisation avec la commande
w32tm /resync
Heure après synchro :
Conclusion
Voilà, on arrive à la fin de ce petit tuto bonnes pratiques concernant la synchro des heures dans un domaine Active Directory avec une subtilité dans un environnement HyperV.
Après ça vos utilisateurs arrêteront de vous dire « L’heure de mon PC est décalée de 5 à 10 min par rapport à mon Smartphone et j’ai beau mettre à l’heure ça se redécale » =)
J’espère que cela vous sera utile comme ça l’a été pour moi,