PowerShell でドライブの空き容量率をチェック。

各ドライブの空き容量を、パーセンテージ(小数点以下3桁以下を四捨五入)で算出する .ps1 スクリプトを書いてみました。
Get-Volume コマンドレットを使うので、Windows 8 や Windows 2012 以降の OS で実行可能です。

 

ドライブの数は環境によって違うでしょうから、何個あっても対応できるようになっています。
ただし光学ドライブや USB メモリは除外します。

 





   




   

 

結果は、カレントディレクトリ直下の「AkiYouryou.txt」に実行日時付きで記録されます。
次に同じスクリプトを実行した場合は同ファイルに追記されるので、タスクスケジューラーなどで定期的に実行すれば、各ドライブの空き容量の変化を追うことができます。

 

 

///////////// <以下、スクリプト> //////////////////////////

$A = Get-Volume

$F = $A | Where-Object {$_.DriveType -eq “Fixed”}

$O = $F.length

$P = $F | Select-Object DriveLetter,FileSystemLabel,Path,Size,SizeRemaining

Write-Output “====================================================================================” | Out-File -FilePath .¥AkiYouryou.txt -Append
Get-Date | Out-File -FilePath .¥AkiYouryou.txt -Append

$C = 0

While ($C -lt $O) {

$W = $P[$C].SizeRemaining/$P[$C].Size

$H = $W*100

$N = [math]::round($H,2)

$P[$C] | Out-File -FilePath .¥AkiYouryou.txt -Append

Write-Output “空き容量率は $N % です。”  | Out-File -FilePath .¥AkiYouryou.txt -Append

Write-Output “——————————–” | Out-File -FilePath .¥AkiYouryou.txt -Append

$C++

}

///////////// <以上> ///////////////////////////////////////

 

 

書いてから気づいたのですが、Get-Volume ではなく Get-WmiObject Win32_Volume を使えば、Windows 7 以前の OS でも使えるスクリプトを書けるはずです。