Cet article propose un fichier batch qui va créer un point de restauration même si la restauration système est désactivée par Windows et montre comment avec le planificateur de tâches de Windows lancer régulièrement et automatiquement ce fichier pour être sûr d’avoir des points de restauration disponibles en cas de problème.

Dans l’article « Sauvegarde et restauration Windows », on a vu que Windows désactive ou perturbe la restauration du système dans plusieurs situations. Celle-ci reste cependant très pratique car elle permet un retour arrière rapide en cas de problème. Un point de restauration est une photographie des fichiers système de Windows (registre, pilotes, DLL). Il ne sauvegarde pas les fichiers personnels et il permet uniquement de revenir à un état stable du système.

1 - Vidéo

 

 

 

 

1 - Fichier création d’un point de restauration

 

Le fichier batch peut être téléchargé en cliquant sur ce lien.

 

1.1 – Ce que fait le fichier .bat et comment le lancer

  • Ce fichier peut être téléchargé ici sur notre site, c’est un fichier texte qui peut être ouvert avec le bloc note et qui est commenté. Enregistrez ce fichier dans un répertoire de votre disque local, vous pouvez changer le nom mais il faut garder l’extension « .bat ».
    Si par exemple le fichier est renommé « pt_restauration.bat » et qu’il est placé dans le répertoire « d:\outils\ », pour le lancer il suffit d’ouvrir une invite de commande (cmd) en mode administrateur et de saisir « d:\outils\pt_restauration.bat » puis d’appuyer sur la touche entrée.
    Une autre façon plus simple est de créer un raccourci sur le bureau avec le gestionnaire de fichiers de Windows (clic droit sur le nom du fichier, maintenir le bouton droit de la souris enfoncé et faire glisser le fichier sur le bureau pour créer le raccourci). Pour lancer le programme faire un clic droit sur le raccourci et faire « Exécuter en tant qu’administrateur ». Ce fichier est commenté, voici rapidement ce qu’il fait :
    • Il vérifie que le programme est lancé avec les droits administrateur.
    • Il lance la création d’un point de restauration sur le lecteur C:
    • Vérifie si des Points de restauration existent (interrogation de la classe WMI SystemRestore via PowerShell).
    • Si au moins un point existe déjà c’est que la restauration était active.
    • Si pas de points de restauration système détectés ou aucun point de restauration système trouvé alors le programme active la restauration.
  • Le programme crée ensuite un point de restauration en indiquant la date.
    • Il affiche ensuite le bilan final :
    • L’état avant exécution si la restauration a été activée automatiquement par ce script.
    • S’il n’existe qu’un seul point de restauration il prévient et affiche des conseils (créer des points de restauration avant l’installation d’un logiciel ou d’un pilote avant une mise à jour importante de Windows ou avant toute modification sensible du système).
    • Si succès : Le point de restauration a été créé avec succès.
    • Si échec il affiche les causes possibles.

 

1.2 – Autoriser les scripts

Le script contient des commandes Powershell pour fonctionner sur toutes les configurations de Windows, cependant, par défaut, la configuration de Windows ne permet pas l'exécution de Scripts PowerShell même si la console est bien présente. C’est pour une raison de sécurité, et pour ne pas rendre possible l'exécution de ces scripts (ou de scripts malveillants téléchargés) si l'utilisateur n'en a pas l'utilité.
Pour autoriser l'exécution des scripts PowerShell sur votre machine, il faut modifier la politique de sécurité appliquée en termes d'exécution des scripts. Il existe 6 modes de sécurité différents :

  • Restricted : C’est la valeur par défaut, elle bloque l'exécution de scripts.
  • AllSigned : Nécessite une signature numérique d’un éditeur pour tous les scripts, même ceux créés directement sur le PC.
  • RemoteSigned : Nécessite une signature numérique d’un éditeur pour les scripts téléchargés à partir d'internet.
  • Unrestricted : Autorise tous les scripts, mais demande une autorisation pour avant l'exécution d’un script non signés téléchargés à partir d’internet.
  • Bypass : Aucun blocage, pas d'avertissement avant le lancement du script.
  • Undefined : Annule la stratégie d'exécution en cours sauf si elle est déjà définie par une stratégie de groupe.

Si le fichier de création de point de restauration ne fonctionne pas ou génère des erreurs voici comment autoriser les scripts.

 

Exécuter la console PowerShell
Cliquer sur "Démarrer" puis saisir "powershell", faire un clic droit sur "Windows PowerShell" et cliquer sur "Exécuter en tant qu'Administrateur"
La politique de sécurité doit être "Restricted" qui est la valeur par défaut sous Windows, pour vérifier cela, saisir la commande PowerShell suivante : Get-ExecutionPolicy.

  • Pour pouvoir exécuter des scripts il faut modifier la politique de sécurité et choisir le mode souhaité par exemple "Unrestricted".
  • Saisir alors la commande suivante : Set-ExecutionPolicy Unrestricted.
  • Saisir "O" (pour Oui) et appuyer sur la touche Entrée.
  • On peut désormais exécuter des scripts PowerShell sur la machine.
  • Pour supprimer l'autorisation lancer cette commande : Set-ExecutionPolicy Restricted.

 

2 - Programmer le planificateur de tâches
Conseil : suivez les paramétrages proposés sur les captures d’écran.

Étape 1: Ouvrir le Planificateur de tâches
• Appuyer sur Win + R, tape taskschd.msc puis Entrée
• Ou rechercher "Planificateur de tâches" dans le menu Démarrer

Étape 2 : Créer une nouvelle tâche (pas un "Assistant")
Dans le panneau de droite, cliquer sur "Créer une tâche..." (et pas sur "Créer une tâche de base").

 

Étape 3 : Onglet "Général"

  • Nom : Restauration hebdomadaire (par exemple)
  • Exécuter en tant que : Mettre le compte administrateur
  • Exécuter avec les autorisations les plus élevées : Cocher cette case (c'est ce qui donne le mode admin)
  • Configurer pour : Windows 10/11

 

Étape 4 : Onglet "Déclencheurs"


1. Cliquer sur Nouveau...
2. Paramètres :

    • Commencer la tâche : Selon une planification
    • Fréquence : Hebdomadaire
    • Jour : choisir le jour ou les jours souhaités (ex: Mercredi)
    • Heure : celle de son choix
  • 3. Facultatif mais déconseillé : en bas de la fenêtre, activer "Répéter la tâche toutes les :"
    • Intervalle : 10 minutes
    • Durée : 1 semaine (ou "indéfiniment" pour qu'elle retente jusqu'au prochain déclencheur). Attention aux conséquences d’un mauvais réglage ! Ne pas activer cette option si vous n’êtes pas sûr, le programme pourrait pas exemple se lancer indéfiniment.
  • 4. Cliquer sur OK

 

Le mécanisme de répétition toutes les 10 mn s'arrêtera automatiquement dès que la tâche réussira (code de retour = 0). Le fichier .bat retourne exit /b 0 en cas de succès et exit /b 1 en cas d'échec.

 

Étape 5 : Onglet "Actions"
1. Cliquer sur Nouveau...
2. Paramètres :
   o Action, choisir : Démarrer un programme
   o Programme/script : cmd.exe (le programme cmd.exe lance l’invite de commande).
   o Ajouter ces arguments : /c "C:\chemin\complet\vers\restauration.bat"
   o Mettre le chemin entre des guillemets car s’il y a des espaces dans le nom du programme ou des répertoires le programme pourrait ne pas se lancer correctement.
3. Cliquer sur OK
Passer par cmd.exe garantit une meilleure compatibilité pour l'exécution en mode admin.

 

 

Étape 6 : Onglet "Conditions"
Décocher "Démarrer la tâche seulement si l'ordinateur est sur secteur" si on veut qu'elle s'exécute même sur batterie (ordinateur portable).

 

Étape 7 : Onglet "Paramètres"
Options et recommandations

  • Autoriser l'exécution à la demande : Activé
  • Si la tâche échoue, redémarrer toutes les 10 minutes
  • Tentatives de redémarrage 6 (= 1h de retry) ou plus selon le besoin
  • Arrêter la tâche si elle s'exécute depuis plus de : Selon la durée max du script
  • Si la tâche est déjà en cours... "Ne pas démarrer une nouvelle instance"

Vérification du .bat
Pour que les relances s'arrêtent au succès, le script doit signaler son état de sortie :

@echo off
:: ... les commandes ...

IF %ERRORLEVEL% NEQ 0 (
echo Echec de la restauration
exit /b 1
)

echo Restauration réussie
exit /b 0

Tester la tâche
Dans le Planificateur, cliquer droit sur ta tâche → Exécuter pour la tester manuellement et vérifier dans la colonne "Résultat de la dernière exécution" qu’on obtient 0x0 (succès).

 

3 – Compléments facultatifs

Voici quelques éléments complémentaires et quelques conseils si vous voulez modifier le fichier batch.

3.1. Comportement du fichier .bat

Pour voir ce qui se passe et l’état de sortie du .bat , modifier temporairement si nécessaire le fichier .bat en ajoutant une pause à la fin :
bat
@echo off
:: ... les commandes existantes ...

echo.
echo Code de sortie : %ERRORLEVEL%
pause
Le lancer ensuite avec un clic droit → Exécuter en tant qu'administrateur. La fenêtre restera ouverte et les messages d'erreur seront visibles.

 

3.2. Contenu du fichier de création du point de restauration
Le .bat utilise des commandes PowerShell pour une meilleure adaptation aux différentes configurations possibles de Windows.

@echo off
:: Création d'un point de restauration via PowerShell
powershell -ExecutionPolicy Bypass -Command "Checkpoint-Computer -Description 'Restauration hebdomadaire' -RestorePointType 'MODIFY_SETTINGS'"

IF %ERRORLEVEL% NEQ 0 (
echo ECHEC - Code : %ERRORLEVEL%
exit /b 1
)

echo SUCCES
exit /b 0

 

3.3 Causes fréquentes d'échec silencieux

Causes et solutions

  • Protection du système désactivée : Panneau de config → Système → Protection du système → Activer sur le lecteur C:
  • Fréquence limitée par Windows : Windows bloque les points de restauration créés à moins de 24h d'intervalle. Ajouter -RestorePointType 'APPLICATION_INSTALL' peut contourner cela
  • PowerShell ExecutionPolicy :  Ajouter -ExecutionPolicy Bypass dans la commande
  • La tâche ne tourne pas vraiment en admin : Vérifier que "Exécuter avec les autorisations les plus élevées" est coché dans l'onglet Général

Note : un fichier .bat qui appelle un autre .bat utilise le mot-clé call. Sans call, le script parent s'arrête immédiatement et passe la main au script enfant sans jamais revenir vérifier l'ERRORLEVEL. La condition IF n'est donc jamais évaluée.

Exemple : ajouter call

@echo off
call "D:\OutilsPortables\CreerPtRestauration\Creation_Point_de_restauration.bat"
IF %ERRORLEVEL% NEQ 0 (
echo Echec de la restauration
exit /b 1
)
echo Restauration réussie
exit /b 0


Les guillemets autour du chemin sont aussi importants si jamais le chemin contient des espaces.

Pourquoi call est indispensable :

  • Sans call : le script parent s'arrête et transfère l'exécution
  • Avec call : Le script parent attend la fin du script enfant
    Sans call : %ERRORLEVEL% n'est jamais vérifié
  • Avec call : %ERRORLEVEL% récupère bien le code de retour
    Sans call : La tâche planifiée croit toujours avoir réussi
  • Avec call : La tâche détecte l'échec et se relance après 10 mn

Quand une tâche est lancée via le Planificateur de tâches, Windows l'exécute en arrière-plan sans afficher de fenêtre console, même si le .bat contient des echo. C'est le comportement attendu.

 

3.4 Comment vérifier que ça a bien fonctionné

1 - Dans le Planificateur de tâches
Cliquer sur ta tâche → onglet Historique → vérifier que le Code opérationnel affiche (0) pour "Task completed" — ce qui signifie exit /b 0 = succès.

planification tache 07 p

2 - Dans Windows, vérifier le point de restauration créé
Win + R → rstrui.exe → Entrée
Cliquer sur "Choisir un autre point de restauration" et vérifier qu'un nouveau point apparaît bien avec la date/heure du test.

Pour quand même garder une trace écrite, on peut ajouter une journalisation dans le .bat :

@echo off
call "D:\OutilsPortables\CreerPtRestauration\Creation_Point_de_restauration.bat"
IF %ERRORLEVEL% NEQ 0 (
echo %DATE% %TIME% - ECHEC >> "D:\OutilsPortables\log_restauration.txt"
exit /b 1
)
echo %DATE% %TIME% - SUCCES >> "D:\OutilsPortables\log_restauration.txt"
exit /b 0
Un fichier log_restauration.txt se créera automatiquement et on pourra consulter l'historique de toutes les exécutions passées.

 

Ajouter une pause temporairement

@echo off
call "D:\OutilsPortables\CreerPtRestauration\Creation_Point_de_restauration.bat"
IF %ERRORLEVEL% NEQ 0 (
echo Echec de la restauration
pause
exit /b 1
)
echo Restauration réussie
pause
exit /b 0

Avec pause, la fenêtre attendra qu’on appuie sur une touche avant de se fermer. Il sera possible de lire le message.
Une fois le test validé, retirer les pauses avant de laisser tourner la tâche planifiée, sinon elle se bloquera en attendant une touche qui ne viendra jamais.

Ne pas oublier de définir le répertoire de démarrage
Le Planificateur ne sait pas depuis quel dossier lancer le script, ce qui fait que le script enfant ne trouve pas ses ressources.

Dans l'onglet Actions de la tâche :

  • Programme/script  : cmd.exe
  • Ajouter des arguments : /c "D:\OutilsPortables\restauration.bat"
  • Commencer dans  : D:\OutilsPortables\ ← ce champ est souvent vide !

Si le script enfant utilise des chemins relatifs, quand le Planificateur lance le .bat, le répertoire courant est souvent C:\Windows\System32, donc tous les chemins relatifs dans Creation_Point_de_restauration.bat sont cassés.
Ajouter au tout début du fichier restauration.bat :

@echo off
cd /d "D:\OutilsPortables\CreerPtRestauration"
call "D:\OutilsPortables\CreerPtRestauration\Creation_Point_de_restauration.bat"
IF %ERRORLEVEL% NEQ 0 (
echo %DATE% %TIME% - ECHEC >> "D:\OutilsPortables\log_restauration.txt"
exit /b 1
)
echo %DATE% %TIME% - SUCCES >> "D:\OutilsPortables\log_restauration.txt"
exit /b 0

Le cd /d force le répertoire courant au bon endroit avant d'appeler le script enfant.

Aucun commentaire

Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
En savoir plus
Consentement
Sécurité du site
Sauvegarder