Upload files to "/"
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# 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 :
|
||||
|
||||
```powershell
|
||||
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)
|
||||
|
||||
```powershell
|
||||
.\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 :
|
||||
|
||||
```powershell
|
||||
.\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
|
||||
|
||||
```powershell
|
||||
$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.
|
||||
Reference in New Issue
Block a user