Tout administrateur système a déjà été confronté à un disque saturé sur un serveur de fichiers Windows. Si l’explorateur graphique permet de vérifier les propriétés d’un dossier, cette méthode s’avère lente, impraticable via un script ou impossible lors d’une session distante en mode console. Contrairement au monde Unix où la commande du est reine (comme nous l’avions vu pour afficher la taille de partition linux / Solaris), l’invite de commande classique de Windows ne propose pas nativement de commutateur simple pour sommer l’espace d’un sous-dossier.
1. La méthode moderne : PowerShell
Sur les versions actuelles de Windows Server et Windows 10/11, PowerShell est l’outil standard pour obtenir rapidement le poids exact d’une arborescence complète. L’approche repose sur le chaînage de Get-ChildItem et Measure-Object.
Voici la commande de base pour calculer la taille totale en mégaoctets :
(Get-ChildItem -Path « C:\MonDossier » -Recurse -File | Measure-Object -Property Length -Sum).Sum / 1MB
Pour un résultat plus lisible, vous pouvez formater la sortie et obtenir les gigaoctets :
[Math]::Round(((Get-ChildItem -Path « D:\Partage » -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum / 1GB), 2)
L’argument -ErrorAction SilentlyContinue est indispensable en environnement de production afin d’éviter que le script n’échoue face à des fichiers temporairement verrouillés ou protégés par des droits spécifiques.
Lister la taille de chaque sous-dossier de premier niveau
Pour auditer un partage et voir quels dossiers utilisateurs consomment le plus d’espace, lancez cette boucle d’une seule ligne :
Get-ChildItem -Directory | ForEach-Object { $taille = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum; [PSCustomObject]@{ Dossier = $_.Name; « Taille (Go) » = [Math]::Round($taille / 1GB, 2) } } | Sort-Object « Taille (Go) » -Descending
2. L’astuce ultra rapide : Robocopy en mode simulation
PowerShell est puissant mais peut ralentir considérablement sur des partages comprenant des centaines de milliers de petits fichiers. Dans ce scénario, l’utilitaire natif Robocopy offre des performances imbattables grâce à son commutateur de simulation /L :
robocopy « C:\MonDossier » « C:\DossierFictif » /L /S /NJH /BYTES /FP /NC /NDL /TS /XJ
Pour un simple résumé chiffré sans lister chaque fichier :
robocopy « C:\MonDossier » NULL /L /E /NFL /NDL /NJH /BYTES
À la fin du traitement, Robocopy affiche un tableau récapitulatif avec le total d’octets lus, le nombre de répertoires explorés et le nombre de fichiers sans rien copier sur le disque.
3. Le rappel historique : Diruse (Resource Kit)
À l’époque de Windows 2000 et Windows Server 2003, les administrateurs utilisaient l’outil diruse.exe issu des Windows Resource Kits. La syntaxe était particulièrement concise :
diruse « D:\Partage » /m
Le paramètre /m permettait de présenter les résultats directement en mégaoctets. Bien que Diruse ne soit plus distribué sur les plateformes récentes, il a longtemps constitué le moyen le plus direct d’automatiser des alertes de volumétrie. Selon que votre serveur exécute un environnement ancien ou récent, vous pouvez également vérifier si l’environnement requiert des exécutables spécifiques en apprenant à déterminer si une version de Windows est 32 ou 64 bits.
Une fois le diagnostic de l’espace disque posé et les opérations de maintenance terminées, pensez à refermer vos connexions d’administration proprement, par exemple en apprenant à déconnecter une session en ligne de commande.




