PowerShell を使用してディスク容量情報を取得する

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell の PSDrive ライブラリを使用してディスク容量情報を取得する
  2. PowerShell で WMI オブジェクトを使用してディスク容量情報を取得する
PowerShell を使用してディスク容量情報を取得する

PowerShell は、Windows オペレーティングシステムシステムに関する包括的なレポートを生成できます。これらのレポートのメトリックの 1つは、システムドライブとそのドライブスペース情報のリストです。

この記事では、すべてのシステムドライブの情報をエクスポートするいくつかのコマンドを学習し、PowerShell を使用してマシンに残っているドライブ容量を決定する方法を学習します。

PowerShell の PSDrive ライブラリを使用してディスク容量情報を取得する

PSDrive ライブラリは、PowerShell を使用した一時ドライブと永続ドライブの管理、作成、および削除を担当する一連のコマンドです。この最初の方法は、クエリコマンド Get-PSDrive に焦点を当てます。

Get-PSDrive コマンドを実行することにより、システムにマウントされているすべてのリポジトリに関する情報をすばやく取得できます。

サンプルコード:

Get-PSDrive

出力:

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Alias                                  Alias
C                 442.84         21.56 FileSystem    C:\                                               Users\KentMarion
Cert                                   Certificate   \
D                3507.38        218.63 FileSystem    D:\
Env                                    Environment
Function                               Function
G                 519.22        412.28 FileSystem    G:\
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

上記の出力からわかるように、Get-PSDrive コマンドのオブジェクトには Name 属性があります。この情報を知ることにより、ドライブ名をフィルタリングし、別のオブジェクト属性を選択して空きサイズを決定することにより、特定のドライブを分離できます。

次のコマンドを実行して、これをテストします。

サンプルコード:

Get-PSDrive -Name C | Select-Object Name, Free

出力:

Name        Free
----        ----
C    23061344256

ただし、最新の出力を事前に出力と比較すると、空きサイズがバイトに変換されていることがわかります。したがって、値をギガバイト(GB)に再変換するには、オブジェクト属性を選択するときにカスタム式を設定する必要があります。

次のコマンドを実行して、これをテストします。

サンプルコード:

Get-PSDrive -Name C | Select-Object Name, @{Name = "Free (GB)"; Expression={[Math]::Round($_.Free/1GB,2)}}

出力:

Name        Free (GB)
----        ----
C           21.41

上記のサンプルコードは、列の名前を Free (GB) に変更し、浮動小数点値の出力を小数点以下 2 桁に丸めます。

PowerShell で WMI オブジェクトを使用してディスク容量情報を取得する

ディスク領域情報を取得する別の方法は、WMIObject クラスを使用することです。このクラスは PSDrive と同様に機能しますが、唯一の違いは、このライブラリがリモートコンピューターを照会できることです。

サンプルコード:

Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" | Select-Object DeviceID, @{Name = "Free (GB)"; Expression={[Math]::Round($_.FreeSpace/1GB,2)}}

出力:

DeviceID Free (GB)
-------- ---------
C:           21.42

リモートコンピューターでクエリを開始するには、Get-WMIObject コマンド内に ComputerName パラメーターを追加します。

Get-WmiObject Win32_LogicalDisk -ComputerName "REMOTE-PC" -Filter "DeviceID='C:'"
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn