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_PATHde 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\Administratorsafin 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
.htmlavec CSS/JS inline — sans risque à envoyer par e-mail ou à conserver comme instantané d'audit.