Outils Les bricolages de Heffgé

Mise à la date et à l'heure automatique

Quoi de plus énervant qu'après avoir allumé son ordinateur portable et tenté d'accéder à un site internet on s'en voie refusé. La batterie est hors d'usage depuis longtemps et la pile nécessite d'être remplacée, la date et l'heure ont été perdues et, encore une fois, on a oublié de les rectifier.

L'ordinateur est trop ancien pour envisager un remplacement de la batterie et on repousse toujours à plus tard le changement de la pile. Le fait qu'il faille généralement démonter entièrement la bête pour y accéder n'incite pas à se précipiter. Tant qu'on ne débranche pas l'alimentation secteur tout va bien mais un portable c'est fait pour le promener d'un endroit à un autre sans fil à la patte.

Rappelons pour ceux qui l'auraient oublié que l'on n'est pas obligé de passer par les menus de configiration du BIOS ou de l'UEFI pour remettre la bonne date et la bonne heure. Ceci peut se faire depuis Windows en mode graphique ou aussi via une fenêtre console à l'aide des commandes date et time. Mais peut faire cette rectification par un simple clic ?

C'est ce que réalise le script batch ci-dessous.

Un simple fichier bat

Ce script exploite la fonction resync du service de temps de Windows. Elle permet d'interroger un serveur de temps distant et de changer la date et heure à partir des données transmises par ce serveur.

@echo off
:test
ping google.com -n 1 > nul
if %ERRORLEVEL% equ 0 goto Suite
timeout /t 2 > nul
goto test
:suite
w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /reliable:yes /update > nul
net start W32Time > nul
w32tm /resync
pause

L'accès à internet peut ne pas encore avoir été rendu possible au moment où le script est exécuté. On a donc prévu une boucle lançant le programme ping sur Google toutes les 2 secondes jusqu'à ce que celui-ci s'exécute avec succès.

Ensuite on configure le service de temps de Windows, on le démarre pour le cas où il ne serait pas en démarrage automatique, et on lui demande de synchroniser l'ordinateur avec le serveur de temps spécifié (ici celui de Microsoft).

Le code ci-dessus devra être copié dans un fichie texte puis sauvgardé avec l'extension bat

Prérequis

Le service Temps Windows ne doit pas avoir été désactivé mais il peut n'être qu'en démarrage manuel. Pour vérifer ce point exécuter services.msc.

Par défaut la sychronisation avec le serveur de temps est refusée si l'écart est supérieur à 54000 secondes (15 heures) dans un sens ou dans l'autre. Cette valeur est en fait consignée dans le registre et peut donc être modifiée.

L'écart pouvant être positif ou négatif il y a un paramètre pour chacun des cas. Ici seul l'écart positif nous intéresse et il faudra seulement modifier la valeur de MaxNegPhaseCorrection dans la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config.

On mettra la valeur hexadécimale conventionnelle FFFFFFFF signifiant que l'écart pourra être quelconque. La synchronisation sera possible même avec un écart de plusieurs années.

Exécuter regedit et aller à la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config puis dans la partie droite modifier le paramètre MaxNegPhaseCorrection.

Paramètre registre

 

Modification paramètre registre

Ce script ne peut être exécuté qu'en mode administrateur. Pour le lancer de manière simple il suffit de créer un raccourci à l'endroit de son choix puis, dans ses propriétés, bouton Avancé, de cocher la case "Exécuter en tant qu'admininistrateur".

Propriétés racourci

 

Propriétés avancées raccourci

Lancement automatique

On peut automatiser l'exécution de ce script en créant une tâche planifiée qui s'exécutera au démarrage de l'ordinateur.

Pour créer un nouvelle tâche, lancer taskschd.msc. On pourra comme dans l'exemple ci-dessous créer un dossier "Perso" pour accueillir cette tâche.

 

Tâche planifiée - début

Dans l'onglet "Général", Options de sécurité, choisir "Système" comme utilisateur et cocher la case "Exécuter avec les autorisations maximales".

Tâche planifiée - généralifiée

Dans l'onglet "Déclencheurs" cliquer sur "Nouveau" puis dans la boîte de dialogue qui s'ouvre, "Au démarrage du système".

Tâche planifiée - déclencheurs

Et enfin dans l'onglet "Actions"cliquer sur "Nouveau" pour indiquer le nom du script précédé de son chemin d'accès.

Tâche planifiée - action

Stratégie de groupe

Au lieu de créer une tâche programmable les détenteurs d'une licence de Windows de type professionnel peuvent utililser Gpedit afin de déclarer le script dans la statégie locale.

GPO - ajout script

 

Toutes les pages du site Les autres sites

accueil
carnet d'adresses et enveloppes
comparaison de dossiers
connexion/déconnexion
contenu d'un dossier
contrôle GPO
conversion ASCII/ANSI
débrider une Livebox SAGEM ou Inventel ancien modèle
gérer un fichier à générations dans un .bat
les pilotes oubliés
mise à la date et à l'heure automatique
nettoyage et arrêt Windows 9x
orthodromie
vidage du répertoire Temp utilisateur et suppression des fichiers temporaires Internet Explorer (Windows XP et Windows 7)
quelques macros pour Word

Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être

 

Le DOS sied