AccueilInformatiqueScript PowerShell simple : automatiser nettoyage fichiers

Script PowerShell simple : automatiser nettoyage fichiers

Les fichiers temporaires s’accumulent en silence. Un poste de travail non entretenu peut perdre plusieurs gigaoctets de stockage en quelques semaines, simplement parce qu’aucune routine de nettoyage n’a été mise en place. Plutôt que de passer par des outils tiers ou des menus graphiques, un script PowerShell de nettoyage automatisé règle le problème proprement, de manière reproductible et auditable. La version 1.0 du script complet, publiée par CtrlAltNod.com, illustre parfaitement ce qu’on peut accomplir avec quelques dizaines de lignes bien pensées.

Prérequis et préparation de l’environnement

PowerShell 5.1 minimum est requis, une version embarquée nativement dans Windows 10 et Windows Server 2016 et leurs successeurs. Sur des systèmes plus anciens, Windows 7 ou Server 2008 R2 par exemple, une version antérieure peut fonctionner, mais la compatibilité n’est pas garantie sur toutes les fonctionnalités. Avant tout, vérifiez votre version avec la commande $PSVersionTable.PSVersion dans une console.

L’exécution réclame des privilèges administrateur local. Sans ça, certains répertoires système resteront inaccessibles et le script générera des erreurs d’accès refusé. Sur les postes verrouillés en entreprise, pensez également à vérifier la politique d’exécution avec Get-ExecutionPolicy : si elle retourne Restricted, la commande Set-ExecutionPolicy RemoteSigned débloque la situation.

A voir  Comment fonctionne le logicielle indesign d'Adobe ?

J’ai souvent vu des collègues perdre du temps sur ce point précis. Un script parfaitement écrit, lancé sans droits suffisants, ne fait rien et ne dit pas toujours pourquoi clairement. Mieux vaut intégrer ce contrôle dès le début, avant même la logique de nettoyage.

La maintenance informatique régulière en entreprise passe souvent par ce type de routine automatisée : simple à déployer, difficile à oublier une fois planifiée.

Comprendre et personnaliser le script de nettoyage PowerShell

Le script cible par défaut les emplacements les plus courants : répertoires temporaires Windows, dossiers %TEMP% utilisateur, caches de Chrome et Firefox, ainsi que les dossiers de téléchargement. La logique centrale repose sur un filtre d’âge : seuls les fichiers de plus de 7 jours sont supprimés, ce qui protège les fichiers récents encore potentiellement utiles.

Voici les paramètres configurables principaux du script :

  1. TargetPaths : tableau de chemins personnalisés (ex. D :\TempData, C :\CustomTemp)
  2. DaysOld : âge minimum des fichiers avant suppression (défaut : 7 jours)
  3. ExcludePatterns : motifs à exclure comme .exe, .dll, *.ini
  4. WhatIf : mode prévisualisation sans suppression effective
  5. LogPath : chemin personnalisé pour le fichier journal horodaté

Le paramètre WhatIf mérite une attention particulière : il permet de simuler intégralement le nettoyage sans toucher un seul fichier. Sur un serveur de production, ne jamais lancer un nouveau script sans ce mode d’abord. C’est une bonne pratique que je recommande systématiquement, surtout quand on modifie des configurations stables après une mise à jour logicielle.

A voir  Quels sont les atouts d'un logiciel de facturation ?

Les motifs d’exclusion par défaut (.exe, .dll, .ini) protègent contre la suppression accidentelle de binaires ou fichiers de configuration. Pour des applications métier spécifiques, ajoutez .config, *.settings ou les extensions propres à vos outils.

Contexte d’utilisation Seuil recommandé (DaysOld) Fréquence suggérée
Environnement développement 1 à 3 jours Quotidienne
Usage professionnel standard 7 jours Hebdomadaire
Serveur de production 14 à 30 jours Hebdomadaire ou mensuelle
Maintenance serveur agressive 3 jours Quotidienne

La journalisation intégrée crée des fichiers log horodatés au format yyyyMMdd_HHmmss. Chaque exécution produit un rapport complet : nombre de fichiers supprimés, dossiers vidés, espace libéré et erreurs rencontrées. La fonction Format-FileSize convertit automatiquement les octets en unités lisibles (KB, MB, GB). Pratique pour comparer l’avant/après sans calculatrice.

Script PowerShell simple : automatiser nettoyage fichiers

Planifier et sécuriser l’automatisation du nettoyage

Un script qu’on lance à la main reste un script qu’on oublie. La vraie valeur vient de l’exécution automatique et régulière. Le Planificateur de Tâches Windows (taskschd.msc) reste l’outil le plus accessible : on crée une tâche avec déclenchement à l’ouverture de session ou au démarrage système, en pointant vers powershell.exe -ExecutionPolicy Bypass -File C :\Scripts\Cleanup.ps1 avec le chemin absolu. Pour des flottes plus significatives, SCCM permet de déployer et surveiller ces tâches à immense échelle.

Côté sécurité, trois réflexes non négociables : créer un point de restauration système avant le premier lancement en production, tester systématiquement en environnement non-critique d’abord, et exclure explicitement les dossiers contenant des données sensibles ou des sauvegardes. Les fichiers en cours d’utilisation ne peuvent pas être supprimés sans fermer les applications correspondantes : planifier le nettoyage au démarrage système, avant l’ouverture des sessions, contourne élégamment ce problème.

A voir  Quels sont les logiciels les plus fondamentaux de l'artiste et du designer ?

Un dernier point souvent négligé : les sauvegardes automatiques échouent parfois sans alerte visible, et le même risque existe pour les tâches planifiées de nettoyage. Vérifiez régulièrement les logs générés par le script pour confirmer que les exécutions se déroulent bien. Un journal vide ou absent est souvent le signe qu’une tâche ne s’est jamais lancée.

Sur les postes à usage intensif (développement, montage vidéo, gaming), le nettoyage quotidien avec un seuil de 1 à 3 jours maintient le système fluide. Pour un serveur de production, mieux vaut rester conservateur avec 14 à 30 jours de rétention et valider la politique avec l’équipe applicative avant tout déploiement. La granularité du script, notamment ses fonctions Test-FileAge et Test-ExclusionPattern, offre précisément ce niveau de contrôle sans bricolage.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

A VOIR EGALEMENT

Derniers articles