Comment localiser des fichiers volumineux sur un ordinateur à l’aide de PowerShell

Retrouver ces fichiers volumineux qui occupent tout votre espace disque peut s’avérer fastidieux, surtout si vous vous contentez de naviguer dans l’Explorateur de fichiers sans avoir une vue d’ensemble. Heureusement, PowerShell simplifie grandement la recherche des fichiers les plus volumineux sur votre disque sans installer d’outil tiers. Les commandes intégrées font le gros du travail et, sur certaines configurations, elles peuvent même gérer les fichiers cachés ou système, souvent négligés. Attention cependant : il arrive parfois de rencontrer des erreurs d’autorisation en tentant d’accéder à certains répertoires, notamment les dossiers système comme C:\Windows\CSC. L’ajout de l’ option `-ErrorAction SilentlyContinue` permet d’ignorer ces erreurs d’accès refusé sans perturber le fonctionnement du système.

Comment trouver les fichiers les plus volumineux par taille sous Windows avec PowerShell

Méthode 1 : Lister les 10 fichiers les plus volumineux sur un disque

Cette méthode est pratique pour consulter rapidement les fichiers les plus volumineux, par exemple, sur votre disque C. La commande trie tous les fichiers par taille (en octets) et affiche les 10 plus volumineux. C’est un peu lourd, mais suffisant pour la plupart des vérifications rapides. En cas d’erreur d’autorisation, ajoutez `-ErrorAction SilentlyContinue` à la fin de votre commande.

Get-ChildItem -Path C:\ -Recurse -Force -ErrorAction SilentlyContinue | sort -descending -property Length | select -first 10 FullName, Length

Voici comment cela fonctionne : – Le chemin C:\ spécifie le lecteur ou le dossier à analyser (vous pouvez le modifier).- L’option « Récursivité » explore les sous-dossiers, comme le paramètre de profondeur.- L’option « Forcer » inclut les fichiers cachés et système (ceux qui sont normalement invisibles).- L’option « Continuer silencieusement » ignore les répertoires auxquels vous n’avez pas accès, évitant ainsi les erreurs d’autorisation.- Le tri classe les fichiers du plus grand au plus petit, puis sélectionne les 10 premiers avec leur chemin et leur taille.

Méthode 2 : Rendre les tailles lisibles par l’utilisateur et utiliser une interface graphique

Par défaut, la sortie est en octets, ce qui n’est pas toujours facile à interpréter. Pour convertir les tailles en Go, ajoutez une propriété personnalisée directement à votre commande. De plus, si vous préférez une présentation visuelle, l’utilisation de Out-GridView permet d’afficher un tableau interactif. Attention : des erreurs d’autorisation peuvent parfois survenir ; il est donc conseillé d’activer l’option de suppression des erreurs.

Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | sort -descending -property Length | select -first 10 Name, DirectoryName, @{Name="GB";Expression={[Math]::Round($_. Length / 1GB, 2)}} | Out-GridView

Cette version affiche le nom du fichier, son répertoire et sa taille en Go, de manière claire et organisée. La partie @{Name= »GB »; Expression=…} crée une colonne personnalisée. Très pratique pour repérer rapidement les fichiers dépassant quelques gigaoctets.

Méthode 3 : Exporter la liste des fichiers volumineux au format CSV

Si vous souhaitez sauvegarder un rapport ou l’analyser ultérieurement, l’exportation au format CSV est la solution idéale. Elle permet de traiter des fichiers de plus de 10 Go, de les trier et de les enregistrer dans un fichier CSV simple d’utilisation, que vous pouvez ouvrir dans Excel ou tout autre tableur.

Get-ChildItem C:\ -Recurse -Force -ErrorAction SilentlyContinue | where-Object {$_. Length -gt 10GB} | Sort-Object Length | select -First 10 FullName, Length | Export-Csv C:\LargeFiles_Report.csv -NoTypeInformation

Voilà, vous disposez maintenant d’un fichier listant les principaux responsables. L’ option `-NoTypeInformation` permet de conserver un fichier CSV plus propre, en supprimant les informations de classe inutiles.

Méthode 4 : Exclusion de certains types et filtrage

Si vous effectuez une recherche mais souhaitez exclure certains types de fichiers (comme les fichiers système ou les fichiers de disque virtuel), vous pouvez utiliser l’ option `-Exclude`. Par exemple, pour ignorer les fichiers `.sys` et `.vmdk`, modifiez la commande comme suit :

Get-ChildItem G:\ -Exclude "*.sys", "*.vmdk" -Recurse -Force -ErrorAction SilentlyContinue | sort -descending -Property Length | select -First 10 FullName, Length

Et si vous recherchez des types de fichiers spécifiques, le paramètre -Filter est utile. Par exemple, -Filter « *video* » permet de trouver rapidement les fichiers vidéo volumineux.

Méthode 5 : Recherche d’un lecteur distant

Vous envisagez d’analyser un partage réseau ou un ordinateur distant ? Utilisez le chemin UNC (par exemple \\NOM_PC\C$ ) et ajoutez les mêmes paramètres. Voici un exemple rapide pour un lecteur C$ distant :

Get-ChildItem -Path \\PC123\C$ -Recurse -Force -ErrorAction SilentlyContinue | where-Object {$_. Length -gt 10GB} | sort -Descending -Property Length | select -First 10 FullName, Length

Ou, si vous souhaitez exécuter ceci sur plusieurs machines, combinez avec Invoke-Command :

$ComputerList = @("server1", "server2") Invoke-Command -ComputerName $ComputerList -ScriptBlock { gci -Path C:\ -Recurse -Force -ErrorAction SilentlyContinue | sort -descending -Property Length | select -First 10 Name, DirectoryName, Length }

Fonctionne sur plusieurs serveurs simultanément, mais vous pourriez avoir besoin de droits d’administrateur sur ces machines.

Conseil : Même avec des droits d’administrateur, certains répertoires peuvent générer des erreurs d’accès. C’est normal. Ajoutez simplement l’option `-ErrorAction SilentlyContinue` pour que la commande s’exécute sans interruption.