SSD・HDDの状態をPowerShellで確かめる方法|Get-PhysicalDiskと、信頼性カウンター(管理者でないとエラー)

SSDやHDDの状態は、PowerShellのGet-PhysicalDiskで、Windowsが把握している健康状態(HealthStatus)を確認できます。さらにGet-StorageReliabilityCounterを使うと、温度・読み書きエラーの数・SSDの消耗(Wear)などが出ます。ただし後者は、筆者の環境では、管理者でないPowerShellではエラーになりました。

この記事では、筆者のPCの3台のドライブで実際に出た結果を例に、確認の手順と、結果の読み方をまとめます。(確認日:2026年10月19日/Windows 11)

1. Get-PhysicalDiskで健康状態を見る

Get-PhysicalDisk | Select-Object FriendlyName, MediaType, BusType, HealthStatus, OperationalStatus, @{n='SizeGB';e={[math]::Round($_.Size/1GB)}} | Format-Table -AutoSize

筆者のPCの結果です(実測。管理者権限は不要でした)。

FriendlyName MediaType BusType HealthStatus OperationalStatus 容量
TOSHIBA MD04ACA200 HDD SATA Healthy OK 1,863GB
CT1000MX500SSD1 SSD SATA Healthy OK 932GB
ESD310S TS1TESD310S-E Unspecified USB Healthy OK 954GB

Microsoftのコマンドレットのページでは、HealthStatusに指定できる値は、Healthy・Warning・Unhealthy・Unknownと案内されています(-HealthStatusパラメーターの値)。出力例のOperationalStatusは「OK」です。USB接続の外付けSSDは、MediaTypeが「Unspecified」と表示されました。

ボリューム(ドライブ文字)の状態は、Get-Volumeで見られます。筆者のPCでは、C・E・Fのボリュームが、HealthStatus「Healthy」、OperationalStatus「OK」でした。

Get-Volume | Where-Object { $_.DriveLetter } | Select-Object DriveLetter, FileSystemType, DriveType, HealthStatus, OperationalStatus

2. Get-StorageReliabilityCounterで詳しく見る

Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId, Temperature, Wear, PowerOnHours, ReadErrorsTotal, WriteErrorsTotal | Format-Table -AutoSize

Microsoftのページには、このコマンドレットは、指定したディスクの信頼性カウンターを取得するもので、デバイスの温度・エラー・消耗・使用時間などの情報が含まれる、と書かれています。出力例の項目には、Temperature、TemperatureMax、Wear、PowerOnHours、ReadErrorsTotal、WriteErrorsTotalなどがあります。

筆者の環境では、通常のPowerShellで実行すると「クライアントが CIM リソースへのアクセスを取得できませんでした」というエラーになり、値は取得できませんでした。管理者として実行すれば取得できる可能性がありますが、この記事ではその結果を確認していません。

項目の読み方(Microsoft Storageチームのブログより)

項目 ブログの説明
読み取り・書き込みの失敗(ReadErrors / WriteErrors) 他のドライブと比べなくても意味がある値。読み書きの失敗を報告しているドライブは、リスクがあるものとして扱う
温度(Temperature) 同じ種類・同じ型番のドライブと比べる時に役立つ。異なる型番では、通常の動作温度が違うことがある
読み書きの遅延(Latency) 同じ種類・同じ型番と比べる時に役立つ
消耗(Wear) SSDが寿命に近づいているかの確認に使える

同じブログは、「この情報は、ディスクが正しくカウンターを報告していることが前提で、すべてのディスクがこの種の統計を報告するわけではない。そのため、ディスクごとの値は変わる」と注意しています。なお、このブログは2012年のもので、Windows 8・Windows Server 2012の時点の説明です。コマンドレットの現在のページは、上のとおりです。

3. 結果を見る時の注意

  • Healthyは、故障しないという意味ではありません。値は、いまWindowsが把握している状態です。バックアップの代わりにはなりません(SSD・HDDが壊れる前後にやること)
  • Warning・Unhealthyが出たら、そのドライブへの書き込みを控え、データを別のドライブへコピーすることを優先します(コピーの手順はrobocopyでMT5のフォルダをバックアップして照合する)
  • USB接続のドライブは、MediaTypeが「Unspecified」になる場合がある(筆者のPCの外付けSSDの例)
  • ファイルシステムのエラーは、別の確認です(chkdskの使い分け)

まとめ

  • Get-PhysicalDiskのHealthStatus(Healthy・Warning・Unhealthy・Unknown)で、Windowsが把握している状態を確認できる。管理者権限は不要だった
  • Get-StorageReliabilityCounterは、温度・エラー・消耗・使用時間を見られるが、筆者の環境では管理者でないとエラーになった
  • 読み書きの失敗を報告するドライブは、リスクがあるものとして扱う(Microsoftのブログ)。すべてのディスクが報告するわけではない
  • Healthyでもバックアップの代わりにはならない