Outil nettoyage de disque : utilisation de profils et exécution programmée

Outil nettoyage de disque : utilisation de profils et exécution programmée

Lorsque le disque dur système commence à être saturé et que l’on manque de place, il est possible de récupérer de la place en exécutant l’outil Nettoyage de disque (Cleanmgr.exe).
Pour autant il n’est pas nécessaire d’attendre d’en arriver là, et l’on peut l’exécuter automatiquement à intervalle régulier, sans pour autant effectuer un nettoyage complet, et même mieux on peut créer des profils différents afin d’effectuer des nettoyages sur des éléments bien précis.

Pour ce faire, on va créer un script qui créera un profil de nettoyage et on exécutera l’outil de nettoyage de disque à intervalle régulier.
Afin de connaître les différentes commandes en ligne de l’outil de nettoyage de disque, ouvrir une console de commande et taper la commande suivante : cleanmgr /?.
Une fenêtre s’ouvre indiquant les commandes disponibles :

Cleanmgr help

Les commandes qui nous intéresse sont : /SAGSET:n et /SAGERUN:n où n est le numéro de profil que l’on va attribuer, qui peut aller de 0 à 65535.
Les commandes /LOWDISK et /VERYLOWDISK sont les profils par défaut de Windows en cas d’espace faible et espace très faible.

Nous allons sélectionner les options de nettoyage qui nous intéresse et les stocker dans le profil n° 1, taper la commande suivante dans une console :

cleanmgr /d %systremroot% /SAGESET:1

L’option /d %systemroot% permet de spécifier la partition sur laquelle on souhaite appliquer le profil, %systemroot% spécifiant qu’il s’agit de la partition système et permet d’avoir des options supplémentaires spécifiques au système.

La fenêtre suivante s’ouvre et vous permet de sélectionner les différents éléments que l’on souhaite nettoyer :

Options de nettoyage

Pour un nettoyage léger, on va choisir de nettoyer les Fichiers programmes téléchargés, Fichiers Internet Temporaires, Corbeille, Miniatures, Fichiers d’installation temporaires de Windows.
Valider par le bouton OK.

Le profil de nettoyage est stocké dans la base de registre, nous allons donc récupérer les clés correspondantes à nos choix précédents.
Lancer regedit.exe et naviguer jusqu’à la clé suivante :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches

Cette branche contient toutes les options disponibles pour l’outil nettoyage de disque :

Clès registres

Nous allons procéder maintenant à l’export de cette branche VolumeCaches afin de récupérer au format texte toutes les valeurs de chaque clés. Effectuer un clic droit sur la branche et sélectionner l’option Exporter. Choisir votre dossier ou stocker ce fichier, un nom, et son format. Ici nous allons utiliser le format .reg qui est un peu plus lisible. Ne pas oublier de sélectionner l’option d’étendue de l’exportation sur Branche sélectionnée et non pas Tout, sinon nous allons obtenir un fichier énorme et retrouver l’information va être pénible.

Menu export    Export REG

Ouvrir le fichier ainsi créer avec notepad. On obtient ceci :

Profil REG

On peut voir les différentes clés correspondant aux options sélectionnées repérées entre crochet […].
Les options sélectionnées pour le profil de nettoyage contiennent une clé « StateFlagsXXXX » où XXXX correspond au numéro de profil attribué. Donc ici pour le profil 1 repérer la clé « StateFlags0001 ».
Nous allons utiliser ce fichier comme base pour notre script, en injectant les clés correspondante au profil dans le registre avec la commande REG ADD.
Donc modifier le fichier en enlevant toutes les autres clés sauf « StateFlags0001 » pour chaque branche où cette clé apparaît et où cette valeur est différente de 0.

On obtient le fichier suivant après épurement :

Fichier REG profil épuré

Il nous reste à modifier chaque ligne pour la transformer en commande REG comme suit :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files]
 "StateFlags0001"=dword:00000002
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files" /v "StateFlags0001" /t REG_DWORD /d 00000002 /f

Cette commande ajoutera chaque option du profil dans la base de registre.

Il reste a ajouter la commande d’exécution du programme de nettoyage de disque pour ce profil, ainsi que la programmation de la tâche dans le planificateur de tâches.
La commande d’exécution est la suivante :

cleanmgr.exe /SAGERUN:1

Nous voulons que cette commande s’exécute à intervalle régulier (chaque vendredi midi), nous allons donc l’ajouter au planificateur de tâche à l’aide de la commande SCHTASKS :

SCHTASKS /Create /TN "Nettoyage Hebdo Profil1" /TR cleanmgr.exe" /SAGERUN:1" /SC WEEKLY /D FRI /ST 12:00 /RU SYSTEM /F

Voici donc à quoi ressemblera le script final à exécuter avec les droits administrateur :

@ECHO OFF

:Profil1
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files" /v "StateFlags0001" /t REG_DWORD /d 00000002 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files" /v "StateFlags0001" /t REG_DWORD /d 00000002 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin" /v "StateFlags0001" /t REG_DWORD /d 00000002 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Setup Files" /v "StateFlags0001" /t REG_DWORD /d 00000002 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache" /v "StateFlags0001" /t REG_DWORD /d 00000002 /f
SCHTASKS /Create /TN "Nettoyage Hebdo Profil1" /TR cleanmgr.exe" /SAGERUN:1" /SC WEEKLY /D FRI /ST 12:00 /RU SYSTEM /F

Si vous souhaitez d’autres programmation, je vous invite à modifier la dernière commande SCHTASKS en fonction de vos désirs en vous aidant de l’aide SCHTASKS /? pour les différents formats de programmation.

Voici le résultat dans le planificateur de tâches, ça fonctionne :

Planificateur de Tâches

Laisser un commentaire