[登録されているタグ]

[記事公開日]2026/01/23

PowerShellでメモリ情報を取得する|Get-CimInstance Win32_PhysicalMemory の使い方

📝 はじめに

PowerShellでPCの調査やトラブル切り分けをしていると、
メモリ容量はいくつ積まれているのか」
「何枚のメモリが挿さっていて、規格は何か」
を正確に確認したい場面はよくあります。

そんなときに使えるのが、
Get-CimInstance Win32_PhysicalMemory です。
この記事では、メモリ情報をPowerShellで取得するための
基本的な考え方と実務で役立つ使い方を解説します。

こんな場面で便利

  • 搭載メモリ容量を正確に確認したい
  • メモリの枚数・規格(DDR4/DDR5など)を知りたい
  • 増設・交換前の事前確認をしたい
  • 動作が重いPCの切り分けをしたい

✅ このコマンドでできること(要点)

  • 物理メモリ(RAM)の詳細情報を取得できる
  • メモリ容量・枚数・規格を確認できる
  • スロット単位で情報を把握できる
  • スクリプトで安定してメモリ情報を扱える

✅ Get-CimInstanceでできること

Get-CimInstance は、
CIM(Common Information Model)を通じて
Windows内部のハードウェア情報を取得するためのコマンドです。

その中でも Win32_PhysicalMemory クラスは、
実際に装着されている物理メモリの情報を
スロット単位で取得できる点が特徴です。

🧩 基本構文

Get-CimInstance Win32_PhysicalMemory

実行すると、搭載されているメモリモジュール分の情報が表示されます。
結果が表示されていれば、コマンドは正常に動作しています。

▶ 基本的な使い方(まずこれだけ)

🔹 メモリ情報をそのまま確認する

Get-CimInstance Win32_PhysicalMemory

項目数が多いため、最初は「どんな情報が取れるか」を確認する目的で使います。

🔹 メモリ容量とスロット位置を確認する

Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator, Capacity

どのスロットに、どれくらいの容量のメモリが挿さっているかを確認できます。
Capacity はバイト単位で表示されます。

🛠 よく使われる指定例

🔹 容量をGB単位で表示する

Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator,
  @{Name="CapacityGB";Expression={[Math]::Round($_.Capacity/1GB,1)}}

実務ではGB表記に変換して確認することがほとんどです。

🔹 メモリの規格や速度を確認する

Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator, MemoryType, SMBIOSMemoryType, Speed

メモリ規格や動作クロック(MHz)の目安を確認できます。
規格は環境によって数値表記になる場合があります。

🔹 メーカーや型番を確認する

Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator, Manufacturer, PartNumber

既存メモリと同等品を探す際の参考情報になります。

💼 実務でよく使う使用例(応用)

🔹 搭載メモリの合計容量を算出する

Get-CimInstance Win32_PhysicalMemory |
Measure-Object Capacity -Sum |
Select-Object @{Name="TotalMemoryGB";Expression={[Math]::Round($_.Sum/1GB,1)}}

システム全体の搭載メモリ容量を一目で確認できます。

🔹 メモリ構成を一覧で把握する

Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator,
  @{Name="CapacityGB";Expression={[Math]::Round($_.Capacity/1GB,1)}},
  Speed, Manufacturer

「何GBのメモリが何枚」という構成が分かりやすくなります。

組み合わせ例

  • Measure-Object で合計容量を算出
  • Select-Object でGB表記に変換
  • CPU情報(Win32_Processor)と合わせて構成確認

🧩 よくある勘違い・つまずきポイント

  • Capacityはバイト単位で表示されるため、そのままだと分かりにくい
  • 規格(DDR4/DDR5など)は数値で表示される場合がある
  • 空きスロットの情報は取得できない
  • 仮想環境では実機と異なる表示になることがある
  • メモリ速度は最大値で表示されない場合がある

🔄 cmdとの違いについて

cmdでは wmic memorychip などで
メモリ情報を取得できますが、
Get-CimInstance
取得結果をオブジェクトとして扱える点が大きな違いです。
加工や集計を前提とする場合はPowerShellの方が向いています。

⚠ エラー・うまく動かないときの確認ポイント

  • PowerShellのバージョンが極端に古くないか
  • CIM関連サービスが停止していないか
  • 管理者として実行が必要な環境ではないか
  • 取得対象が仮想マシンでないか

🧠 注意点

Win32_PhysicalMemory で取得できるのは
「物理的に搭載されているメモリ」の情報です。
実際の使用量や空き容量を知りたい場合は、
別のクラスやコマンドと組み合わせて確認してください。

📌 まとめ

  • Win32_PhysicalMemoryでメモリ情報を詳細に取得できる
  • 容量・枚数・規格の確認に便利
  • 実務ではGB表記への変換が必須
  • 次は使用量確認(Win32_OperatingSystemなど)と組み合わせると実用的

🔎 PowerShellコマンドを探す

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • メモリ容量や構成を確認したい
  • PCの性能情報を把握したい
Generic filters
すべてを開く | すべてを閉じる

ページ上部へ戻る