Files
FilerManager/README.md
T
2026-06-05 11:36:54 +02:00

5.9 KiB

Filer Manager

Un outil PowerShell mono-fichier pour les serveurs de fichiers Windows. Il analyse des dossiers et rapporte :

  • Tailles des dossiers — arborescence visuelle et repliable avec barres de taille (arbre GUI + HTML).
  • Chemins trop longs — fichiers/dossiers dont le chemin complet atteint ou dépasse un seuil (260 par défaut, le MAX_PATH de Windows).
  • Permissions NTFS — propriétaire + ACL (identité, droits, allow/deny, hérité) par dossier, jusqu'à une profondeur configurable. Dans l'interface, cliquez sur n'importe quel en-tête de colonne (Dossier / Identité / Droits / Type / Hérité) pour une fenêtre de type Excel : tri A→Z / Z→A et sélection des valeurs à conserver. Les filtres se combinent entre les colonnes ; Effacer les filtres réinitialise le tout.
  • Octroi automatique en cas de refus (optionnel) — lorsqu'un élément ne peut pas être lu, l'outil s'approprie la propriété pour Administrators et accorde le FullControl à BUILTIN\Administrators afin que l'analyse puisse se terminer. Chaque modification est consignée dans l'onglet/la section de rapport Accès accordé, et par défaut chacune est annulée après l'analyse (propriétaire + ACL d'origine restaurés là où ils ont pu être lus au préalable). Nécessite une exécution en mode élevé.

Tout est exportable vers un rapport HTML autonome (aucune ressource externe — fonctionne hors ligne, facile à envoyer par e-mail ou à archiver). Les rapports peuvent devenir volumineux, vous pouvez donc n'exporter que les catégories nécessaires — une, plusieurs ou toutes — aussi bien dans l'interface (sélecteur à cases sur Exporter HTML…) qu'en mode sans interface (-Category).

Aucune installation ni dépendance. Fonctionne sur Windows PowerShell 5.1 et PowerShell 7+.

Lancer l'interface graphique

Double-cliquez sur Run-FilerManager.cmd (il se lance avec -ExecutionPolicy Bypass pour cette exécution uniquement), ou depuis une console :

pwsh -STA -File .\filer-manager.ps1

Dans la fenêtre : Ajouter… un ou plusieurs dossiers, ajustez Longueur max / Profondeur des permissions / Inclure les fichiers dans l'arborescence, cochez éventuellement Accorder l'accès Administrators aux éléments refusés (et Annuler les modifications après l'analyse), cliquez sur Analyser, puis Exporter HTML… — la boîte de dialogue d'export vous laisse cocher les catégories (Tailles des dossiers, Chemins trop longs, Permissions, Accès accordé, Erreurs) à inclure dans le fichier ; toutes sont sélectionnées par défaut.

L'octroi automatique n'agit que sur les éléments refusés, un élément à la fois. Exécutez Filer Manager en tant qu'administrateur pour qu'il fonctionne — il vous avertit si vous n'êtes pas en mode élevé.

L'analyse s'exécute sur un thread d'arrière-plan, la fenêtre reste donc réactive sur les grosses arborescences.

Lancer sans interface (pour le Planificateur de tâches / cron)

.\filer-manager.ps1 -Path "\\FILER01\Data","D:\Profiles" -Output C:\Reports\filer.html -NoGui

Paramètres

Paramètre Défaut Description
-Path Un ou plusieurs dossiers racines à analyser.
-Output Chemin du rapport HTML (mode sans interface).
-MaxPathLength 260 Signale les éléments dont la longueur de chemin complet est ≥ ce nombre de caractères.
-PermissionDepth 1 Niveaux de dossiers sous chaque racine pour lesquels collecter les ACL (0 = racines uniquement).
-IncludeFilesInTree off Liste les fichiers individuels dans l'arborescence des tailles, pas seulement les dossiers.
-GrantAccess off S'approprie la propriété + accorde le FullControl à Administrators sur les éléments refusés, puis réessaye. Nécessite le mode élevé.
-KeepGrants off Conserve l'accès accordé par -GrantAccess (par défaut : annulé après l'analyse).
-NoGui off Force le mode sans interface (nécessite -Path et -Output).
-Category All Catégories à inclure dans le rapport — toute combinaison de Tree, LongPaths, Permissions, Grants, Errors (pour garder les gros rapports petits).

N'exporter que les permissions, ou seulement les tailles + chemins trop longs :

.\filer-manager.ps1 -Path "D:\Shares" -Output perms.html -NoGui -Category Permissions
.\filer-manager.ps1 -Path "D:\Shares" -Output sizes.html -NoGui -Category Tree,LongPaths

Planifier un rapport hebdomadaire

$action  = New-ScheduledTaskAction -Execute "pwsh.exe" `
    -Argument '-NoProfile -File "C:\Tools\filer-manager\filer-manager.ps1" -Path "D:\Shares" -Output "C:\Reports\filer.html" -NoGui'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 6am
Register-ScheduledTask -TaskName "Filer Report" -Action $action -Trigger $trigger -RunLevel Highest

Notes

  • Exécutez l'outil avec un compte disposant d'un accès en lecture aux dossiers (et SeBackupPrivilege / Administrateur aide à atteindre les ACL et à contourner les refus par dossier). Les éléments qui ne peuvent pas être lus sont listés dans la section Erreurs / accès refusé au lieu de faire échouer l'analyse — ou, avec -GrantAccess (en mode élevé), l'outil s'accorde l'accès et liste les modifications dans Accès accordé.
  • Taille d'un dossier = somme des longueurs des fichiers (taille logique), pas la taille sur le disque.
  • Le rapport est un seul fichier .html avec CSS/JS inline — sans risque à envoyer par e-mail ou à conserver comme instantané d'audit.