物理ドライブの使用領域を取得するWindows PowerShellスクリプト

サーバー管理や企業内のポリシー運用などでサーバーのディスク容量を記録しておく場合がある。そんなときに、エクスプローラーを起動し個々のドライブを見ていくのは手間がかかる。Windows PowerShellでスクリプトを組んでしまえば、実行するだけで取得できるようになるので手間が省ける。定期的に行う作業は可能な限り自動化するのが効率化を図る上で重要になってくる。

このコードでは結果を画面に表示しているが、必要に応じてファイルに書き込むように設定しておくと他のシステムとの連携にも使える。

# 物理ドライブの容量を取得
$disks = Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq 3 }

foreach ($disk in $disks)
{
    [double]$parcentUsedSize = 0
    [double]$parcentSize = 0
    [double]$percentFreeSpace = 0

    # ドライブID
    Write-Host "ドライブ  :" $disk.DeviceID

    # 使用領域
    $usedSize = [long]$disk.Size - [long]$disk.FreeSpace
    $displayUsedSize = [System.Math]::Floor([double](($usedSize / 1GB)) * 10) / 10

    if ($displayUsedSize -ge 100)
    {
        $parcentUsedSize = ("{0:N0}" -f $displayUsedSize)
        Write-Host "使用領域  :" ("{0:N0}" -f $displayUsedSize) "GB"
    }
    elseif ($displayUsedSize -lt 100 -and $displayUsedSize -ge 10)
    {
        $parcentUsedSize = ("{0:N1}" -f $displayUsedSize)
        Write-Host "使用領域  :" ("{0:N1}" -f $displayUsedSize) "GB"
    }
    else
    {
        $parcentUsedSize = ("{0:N2}" -f $displayUsedSize)
        Write-Host "使用領域  :" ("{0:N2}" -f $displayUsedSize) "GB"
    }

    # 空き領域
    $displayFreeSpace = [System.Math]::Floor([double](($disk.FreeSpace / 1GB)) * 10) / 10

    if ($displayFreeSpace -ge 100)
    {
        Write-Host "空き領域  :" ("{0:N0}" -f $displayFreeSpace) "GB"
    }
    elseif ($displayFreeSpace -lt 100 -and $displayFreeSpace -ge 10)
    {
        Write-Host "空き領域  :" ("{0:N1}" -f $displayFreeSpace) "GB"
    }
    else
    {
        Write-Host "空き領域  :" ("{0:N2}" -f $displayFreeSpace) "GB"
    }

    # 容量
    $displaySize = [System.Math]::Floor([double](($disk.Size / 1GB)) * 10) / 10

    if ($displaySize -ge 100)
    {
        $parcentSize = ("{0:N0}" -f $displaySize)
        Write-Host "容量      :" ("{0:N0}" -f $displaySize) "GB"
    }
    elseif ($displaySize -lt 100 -and $displaySize -ge 10)
    {
        $parcentSize = ("{0:N1}" -f $displaySize)
        Write-Host "容量      :" ("{0:N1}" -f $displaySize) "GB"
    }
    else
    {
        $parcentSize = ("{0:N2}" -f $displaySize)
        Write-Host "容量      :" ("{0:N2}" -f $displaySize) "GB"
    }

    # 使用割合
    $percentFreeSpace = $parcentUsedSize / $parcentSize * 100

    if ($percentFreeSpace -ge 100)
    {
        Write-Host "使用割合  :" ("{0:N0}" -f $percentFreeSpace) "%"
    }
    elseif ($percentFreeSpace -lt 100 -and $percentFreeSpace -ge 10)
    {
        Write-Host "使用割合  :" ("{0:N1}" -f $percentFreeSpace) "%"
    }
    else
    {
        Write-Host "使用割合  :" ("{0:N2}" -f $percentFreeSpace) "%"
    }

    Write-Host
}

Follow me!

Feedlyで新着記事をチェックしよう!

Feedlyでフォローしておけば、新着記事をチェックすることができます。ぜひ、この機会にFeedlyに追加しておきましょう。