【PowerShell】PCのハードウェア情報を一覧取得する方法|CPU・メモリ・ディスクなど

【PowerShell】PCのハードウェア情報を一覧取得する方法|CPU・メモリ・ディスクなど PowerShell

Windows PCの詳細なハードウェア情報(CPU、メモリ、ディスク、マザーボードなど)を一括で確認したい場面は、システム監査や社内資産管理、トラブル対応などでよくあります。PowerShellを使えば、WMI(Windows Management Instrumentation)を通じてさまざまな情報をスクリプトで簡単に取得できます。この記事では、主要なハードウェア情報を一覧取得する方法を紹介します。

CPU情報を取得する

Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed

出力例:

Name                   : Intel(R) Core(TM) i7-1165G7
NumberOfCores          : 4
MaxClockSpeed          : 2800

メモリ(RAM)の容量を確認する

Get-CimInstance Win32_PhysicalMemory |
Select-Object Manufacturer, Capacity, Speed

容量(バイト)をGBに変換したい場合:

Get-CimInstance Win32_PhysicalMemory |
Select-Object Manufacturer, @{Name='Capacity(GB)';Expression={"{0:N2}" -f ($_.Capacity / 1GB)}}, Speed

ディスク情報の取得

Get-CimInstance Win32_DiskDrive |
Select-Object Model, Size, InterfaceType, MediaType

サイズもGB換算で表示する場合:

Get-CimInstance Win32_DiskDrive |
Select-Object Model, @{Name="Size(GB)";Expression={"{0:N1}" -f ($_.Size / 1GB)}}, InterfaceType

ストレージのパーティション・空き容量

Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" |
Select-Object DeviceID, VolumeName, @{Name="Free(GB)";Expression={"{0:N1}" -f ($_.FreeSpace / 1GB)}}, @{Name="Total(GB)";Expression={"{0:N1}" -f ($_.Size / 1GB)}}

マザーボード(ベースボード)情報


Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber

OS・PC名・シリアル番号などをまとめて取得

Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, Name, TotalPhysicalMemory
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture
Get-CimInstance Win32_BIOS | Select-Object SerialNumber

全体をまとめてCSV出力する例

$cpu = Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores
$memory = Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum
$disk = Get-CimInstance Win32_DiskDrive | Select-Object -First 1 Model, Size
$bios = Get-CimInstance Win32_BIOS | Select-Object SerialNumber

[PSCustomObject]@{
  CPU         = $cpu.Name
  Cores       = $cpu.NumberOfCores
  MemoryGB    = [math]::Round($memory.Sum / 1GB, 2)
  DiskModel   = $disk.Model
  DiskSizeGB  = [math]::Round($disk.Size / 1GB, 2)
  SerialNo    = $bios.SerialNumber
} | Export-Csv -Path ".\pc_hardware_info.csv" -NoTypeInformation -Encoding UTF8

まとめ

PowerShellとCIM/WMIを使えば、PCのハードウェア情報を細かくかつ自動で取得できます。GUIでは時間がかかる情報収集も、スクリプト化すれば複数台に対して一括実行でき、業務効率を大幅に改善できます。社内PCの棚卸し、サポート前の事前確認、自動監視など、さまざまな用途で活用できる便利なテクニックです。