Configurer un serveur de temps sous Windows

Voici quelques temps j’ai été confronté à un souci. Si tout mes serveurs Linux étaient bien synchronisés avec des serveurs NTP (cf. ce post), les postes de travail sous Windows avaient eux une légère avance. Vous me direz que ce n’est pas trop grave, mais comme les personnes travaillant sur ces postes se basent sur cette heure pour partir, cela fait désordre. En cherchant quelques informations j’ai pu avoir une meilleure idée du fonctionnement des serveurs de temps sous Windows. Au sein d’un domaine, les machines se basent sur le temps du serveur d’autorité, donc bien souvent le PDC (Contrôleur de domaine). Ce dernier se base par défaut sur son horloge interne. C’est en effet le plus simple et le plus sûr car on est alors indépendant d’une source externe (pas de souci si on a pas Internet). Dans le cadre de mon réseau d’entreprise, j’ai un accès à Internet redondant avec d’un côté une fibre optique à 100 Mo et de l’autre une connexion basique via une Box d’un FAI. Si l’accès principal se coupe, le Firewall basculera automatiquement vers la deuxième connexion le temps que la première se rétablisse. L’horloge interne de mon contrôleur de domaine semblant avancer, j’ai décidé de synchroniser ce dernier avec le pool ntp français, comme pour mes serveurs Linux.

Je suis d’abord tombé sur cette fiche du support de Microsoft. On y trouve une description très complète de ces soucis, peut-être trop. Autant sous Linux on édite juste le fichier de configuration ntp.conf, autant ici on se retrouve à devoir jouer avec la base de registre, ce qui est loin d’être ma méthode préférée sur un contrôleur de domaine principal 😉 Je suis ensuite tombé sur un site d’administration réseau où l’explication était plus simple et a répondue à mon besoin (www.adminreseau.net). Voici ci-dessous la méthode que j’ai donc appliquée :

Dans une invite de commandes DOS entrer la commande suivante :

net time /setsntp:fr.pool.ntp.org

Cette commande permettra de configurer la source de temps externe en modifiant les entrées suivantes de la base de registre (personnellement, j’ai fais une sauvegarde complète de la base de registre avant de faire cette manipulation, on est jamais trop prudents …) :

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type passera de NT5DS à NTP
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags passera de 10 à 5 en décimal
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer sera créée au besoin et contiendra le nom du serveur NTP utilisé pour la synchronisation, ici fr.pool.ntp.org (pool de serveurs de temps français).

Il fallait ensuite redémarrer le serveur de temps en tapant les commandes suivantes à la suite :

net stop w32time (arrêt du service de temps)
net start w32time (démarrage du serveur de temps)
w32tm /resync /rediscover (force la synchronisation)

Si vous avez d’autres contrôleurs de domaine, vous pouvez faire cette manipulation supplémentaire dessus pour les synchroniser :

/setsntp (efface la configuration précédente)
w32tm /resync /rediscover (force la synchronisation)

Vous pourrez ensuite vérifier la synchronisation de vos contrôleurs de domaine avec la commande suivante :

w32tm /monitor

Personnellement je n’avais qu’un seul contrôleur de domaine donc pas besoin de m’occuper de la synchronisation des autres. En revanche je ne me suis pas embêté à aller sur chaque poste Windows pour le synchroniser. Les utilisateurs éteignant les machines la nuit, la synchronisation s’est faite naturellement au petit matin quand ils ont rallumés leurs postes de travail 🙂

2 réflexions au sujet de « Configurer un serveur de temps sous Windows »

  1. Ping : Serveur de temps et Windows 2008 – BloGals

  2. Stephane DURAND

    Un grand Merci. Cela m’a permis de mettre de l’ordre au niveau des horloges et de mieux comprendre le service w32time après une migration d’un serveur PDC W2003 (qui avait déjà cette source de temps externe) vers un nouveau serveur PDC W2003R2.

Laisser un commentaire

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