PC内のディスク使用量が高くなった場合に、サイズの大きいファイルを探すためのPowerShellスクリプトをメモしておきます。
PowerShellスクリプト
# 検索するディレクトリを設定
$directory = "C:\"
# 検索するファイルの最小サイズを設定(例:10MB)
$minimumSize = 10MB
# 実行中のスクリプトファイルのディレクトリを取得
$scriptPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
# 出力ファイルのパスを設定(スクリプトファイルと同じディレクトリ)
$outputFile = Join-Path -Path $scriptPath -ChildPath "large_files.tsv"
# 指定ディレクトリから指定サイズ以上のファイルを検索し、TSVフォーマットでリスト化してファイルに保存
Get-ChildItem -Path $directory -Recurse -File |
Where-Object { $_.Length -gt $minimumSize } |
Sort-Object Length -Descending |
Select-Object FullName, @{Name="Size(MB)";Expression={"{0:N2}" -f ($_.Length / 1MB)}}, LastWriteTime |
Export-Csv -Path $outputFile -Delimiter "`t" -NoTypeInformation -Encoding UTF8
指定されたフォルダ(およびそのサブフォルダ)内のファイルをサイズに基づいて検索し、最も大きいファイルから順にリストします。リストはファイルのパス、サイズ、最終更新日時を含みます。
検索するディレクトリと最小ファイルサイズは必要に応じて変更します。
管理者権限でのPowerShell実行
スクリプト実行時、アクセス拒否されたフォルダがあり、管理者権限で実行したところエラーがなくなりました。管理者権限での実行方法は以下のとおりです。
- スタートメニューを開く。
- PowerShell ISEを検索。
- 検索結果で表示された Windows PowerShell ISEを右クリックし、「管理者として実行」 を選択。
- 管理者権限で開いたPowerShellウィンドウで、スクリプトファイルを実行。
例えば、スクリプトがC:\Scripts\your_script.ps1
にある場合、次のコマンドを入力します。
C:\Scripts\your_script.ps1
ただ、管理者権限での実行時にもエラーが発生することがありました。エラーが発生しても読み取れたフォルダの検索結果がリスト化されます。