Windows環境を長期間利用していると、いろいろなデータが蓄積されてディスクの空き容量が少なくなってくるものです。
そんなとき、フォルダーごとの使用量を確認できれば、どのフォルダーが容量を消費しているかや、不要なデータを洗い出すのにも役立ちます。
そこでここでは、Microsoftが提供しているシステム管理ツール「Windows Sysinternals」に含まれるdu(Disk Usage)コマンドと、PowerShellを組み合わせて、フォルダーごとの使用量を確認する方法を紹介します。
目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 1909 |
duコマンドの入手
duコマンドは以下のWebページからダウンロードが可能です。
Disk Usage - Windows Sysinternals | Microsoft Docs
ダウンロードしたZIPファイルは、展開して中にある「du.exe」を任意の場所に配置しておきます。(duコマンドを実行するときに、フルパスで指定したくない場合は、パスが通ったフォルダーに配置しておくのがよいでしょう。)
Sysinternalsでは、上のようにツールをダウンロードして実行するほかに、インターネット上に配置されたツールを直接実行できる「Sysinternals Live」というサービスも提供されています。
「Sysinternals Live」を利用するときは、実行ファイルを指定するときに「\live.sysinternals.com/tools/du.exe」というように指定します。

フォルダーごとの使用量を確認する
duコマンドの配置が済んだら、PowerShellを起動して調査開始です。
以下のコマンドでは、Cドライブにあるフォルダーごとの使用量を、大きい順にTop10形式で出力します。
PS> du.exe -accepteula -nobanner -c -l 1 C: | ConvertFrom-Csv | Sort-Object -Descending {[decimal] $_.DirectorySizeOnDisk} | Select-Object -First 10 | Format-Table -AutoSize
「Sysinternals Live」で実行したい場合は、次のように実行します。
PS> \\live.sysinternals.com/tools/du.exe -accepteula -nobanner -c -l 1 C: | ConvertFrom-Csv | Sort-Object -Descending {[decimal] $_.DirectorySizeOnDisk} | Select-Object -First 10 | Format-Table -AutoSize
いくつかのコマンドをパイプでつなげていますが、各コマンドでは次のような処理を行っています。
du.exe -accepteula -nobanner -c -l 1 C:
duコマンドでは、Cドライブを検索対象として第一階層目のフォルダー(-l 1)の使用量を調べて、結果をカンマ区切りのCSV形式で出力(-c)しています。
「-accepteula -nobanner」の部分は、余計な情報が出力されないようにするためのおまじないです。
ConvertFrom-Csv
次の「ConvertFrom-Csv」では、duコマンドで出力されたCSV形式のテキストデータを、PowerShellで処理できるオブジェクトに変換しています。
Sort-Object -Descending {[decimal] $_.DirectorySizeOnDisk}
次の「Sort-Object」コマンドレットでは、duコマンドで出力されたデータを「DirectorySizeOnDisk」列の数値を基に、降順(-Descending)で並べ替えています。
Select-Object -First 10
次の「Select-Object」コマンドレットでは、出力データから使用量の大きいフォルダーのTop10だけを抽出しています。
Format-Table -AutoSize
最後の「Format-Table」コマンドレットでは、上で抽出したオブジェクトを見やすいように表形式で出力しています。
最終的な出力は、次のような感じになります。
あとがき
ここで紹介したコマンドを実行した後は、さらに使用量が大きいフォルダーに絞って調査を進めることで、データ整理に役立てることができるでしょう。
お試しあれ。