Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

最新のWindowsには、S.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology)を通じてコンピューター内のハードディスクの健康状態に関する情報を収集し、問題を検出した際にユーザーへ通知する機能が備わっています。本記事では、Windowsがハードディスクの物理的な問題を通知する際の表示内容と、WMIクラス、PowerShell、コマンドプロンプトといった標準搭載ツールを使ってディスクのSMART情報を取得する方法を詳しく解説します。

近年のほとんどのストレージデバイス(HDD、SSD、NVMe SSDなど)はS.M.A.R.T.に対応しています。ディスクのコントローラーがディスクの物理的な特性を常時監視しており、WindowsはこれらのデータにWMI経由でアクセスできます。

なお、SMART情報を取得できるのはローカルの物理ディスク(ATA/SATAデバイス)のみです。Fibre Channel、iSCSI、RAID経由で接続された外部LUNや共有ドライブは、SMARTステータスを報告しない点に注意してください。

「Windowsでハードディスクの問題が検出されました」メッセージについて

Windowsでは、デフォルトで論理ディスクマネージャーと診断ポリシーサービスによるディスク監視が有効になっています。いずれかのドライブがPredictive Failure(予測障害)ステータスを返すと、タスクスケジューラがMicrosoft-Windows-DiskDiagnosticResolverタスク(\Microsoft\Windows\DiskDiagnostic)を実行し、次のようなエラーメッセージが表示されます。

ハードディスクに問題が検出されました
情報の損失を防ぐため、直ちにファイルをバックアップしてください。その後、ディスクの修復が必要かどうかを判断するため、コンピューターの製造元にお問い合わせください。

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

同時に、イベントビューアーのログには以下のような記録が残ります。

ドライバーは、デバイス \Device\Harddisk1\DR1 が故障すると予測したことを検出しました。直ちにデータをバックアップし、ハードディスクドライブを交換してください。故障が差し迫っている可能性があります。
Windows ディスク診断により、ディスク ..........(ボリューム E:\)でS.M.A.R.T.エラーが検出されました。このディスクは故障する恐れがあるため、今すぐコンピューターをバックアップしてください。ハードディスクに障害が発生した場合、ファイル、ドキュメント、画像、プログラム、設定など、ディスク上のすべてのデータが失われる可能性があります。ハードディスクの修復または交換が必要かどうかを判断するには、コンピューターの製造元に問い合わせてください。バックアップメディアがない場合は、コンピューターをシャットダウンし、バックアップメディアを用意できた時点で再起動してください。それまでの間、重要なファイルをこのディスクに保存しないでください。

Predictive Failureステータスは、機械的摩耗などのディスク特性のひとつが基準値から外れており、ディスクが近いうちに故障する可能性があることを示しています。

この状態になった場合は、まずディスク上のデータを別のメディアへバックアップすることを最優先に行ってください。その後、メーカー純正のSMART診断ツールやCrystalDiskInfoなどのサードパーティーツール、さらにchkdskコマンドを使ってディスクの詳細なチェックを行いましょう。

この警告メッセージの表示・非表示は、グループポリシー(GPO)の個別オプション[ディスクの診断: 実行レベルの構成]([管理用テンプレート]→[システム]→[トラブルシューティングと診断]→[ディスクの診断])で制御できます。

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

Windowsでディスクの健康状態を調べるには、CrystalDiskInfoやHDTuneなどのサードパーティーツールが広く使われています。これらのツールは、ディスクに関する非常に詳細な情報を提供してくれます。

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

たとえば、SSDの残り寿命を簡単に把握できます。総書き込み量(Total Host Writes)の現在値が507GBで、メーカーが保証するこのSSDモデルの最大書き込み耐量(TBW)が300TBであれば、摩耗率は0.2%未満ということになります。通電時間もまだ108時間程度です。

WMIクラスとPowerShellでハードディスクのSMART属性を確認する

Windows標準の機能だけでもSMARTデータを確認できます。コントロールパネルの[システムとセキュリティ]→[セキュリティとメンテナンス]を開くと、コンピューターのディスクの健康状態に関する情報が表示されます。ここには、Windowsエラー報告サービスの状態も併せて表示されます。

私の環境ではディスクは正常であり、[ドライブの状態]セクションに「OK:すべてのドライブは正常に動作しています」というメッセージが表示されています。

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

前述のとおり、WindowsはディスクからSMART情報を収集しており、WMI経由で参照できます。なお、BIOS/UEFIの設定でSMARTが有効になっている必要がありますので、事前に確認しておきましょう。

管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行すると、すべてのディスクの状態を一括で取得できます。

wmic diskdrive get status

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

この例ではすべてのディスクが正常(OK)です。問題がある場合は、BadUnknownCautionなどのステータスが表示されます。

なお、wmicコマンドは新しいWindows 11のビルドでは非推奨となっているため、今後は後述のPowerShellコマンドレットの利用が推奨されます。

WMIへのアクセス時にエラーが発生する場合は、WMIリポジトリの修復を試みてください。

ハードディスクの故障予兆に関する情報は、MSStorageDriver_FailurePredictStatus WMIクラスでも取得できます。

wmic /namespace:\\root\wmi path MSStorageDriver_FailurePredictStatus

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

ディスクコントローラーが問題を検出していない場合、PredictFailureの値はFALSEになります。

同じクラスはPowerShellからも照会できます。

Get-WmiObject -namespace root\wmi –class MSStorageDriver_FailurePredictStatus

PredictFailure = True が返された場合は、Reasonパラメーターに表示されるエラーコードに注目してください。エラーコードの意味はベンダーによって異なります。主なコードについては、Wikipedia(https://en.wikipedia.org/wiki/S.M.A.R.T.#ATA_S.M.A.R.T._attributes)で解説されています。

以下のPowerShellコマンドを実行すると、信頼性カウンターの値を取得できます。

Get-Disk | foreach { $_ | Get-StorageReliabilityCounter | Format-List }

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

特定のSMART属性だけを絞り込んで表示することも可能です。

Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object -Property DeviceID, Wear, ReadErrorsTotal, ReadErrorsCorrected, WriteErrorsTotal, WriteErrorsUncorrected, Temperature, TemperatureMax | FT

さらに、Get-PhysicalDiskコマンドレットを使えば、ディスクの全般的な情報を確認できます。

$(Get-PhysicalDisk | Select *)[0]

Windowsでハードディスクの状態(S.M.A.R.T.)を確認する方法【WMI・PowerShell活用】

過去には、Get-PhysicalDiskを使ってWindows Serverの記憶域スペースダイレクト(S2D)環境で障害が発生したディスクを特定し、交換する手順をご紹介しました。

Get-PhysicalDisk | Where-Object {$_.HealthStatus -ne 'Healthy'}

これらのWMIクラスとPowerShellコマンドレットを組み合わせれば、ユーザーコンピューター上のディスク健全性データを自動収集し、状態を予防的に監視する仕組みを構築できます。Zabbix、Nagios、Icingaなどの監視システム向けのアラート設定、SCCMの構成基準を使ったコンプライアンスレポート、PowerShell Desired State Configuration(DSC)との連携、PowerShellリモーティング(Invoke-Commandコマンドレット)によるリモートコンピューターからのSMARTステータス照会など、幅広い運用に応用可能です。


  1. Windowsで使えるHDD健康状態チェックソフト おすすめ6選

    ハードディスクはPCやノートパソコンに欠かせない重要なパーツです。コンピュータの動作に必要なソフトウェアが格納されているだけでなく、文書・画像などの大切なデータもすべてここに保存されています。ハードディスクはPCの長期記憶装置ですが、使用を重ねるうちに徐々に劣化していきます。ディスクに障害が発生すれば、保存されたデータも失われる危険があります。だからこそ、定期的なヘルスチェックが重要です。ハードディスクには限られた寿命があるため、専用のチェックソフトで状態を把握し、「そろそろ交換すべきか」「まだ修理で使えるか」を判断しましょう。一度失われたデータは、特にディスク自体が破損している場合、二度と取

  2. Windowsのディスクチェックツールでハードディスクのパーティションを検査・修復する方法

    はじめにディスクエラーは、特にメンテナンスが行き届いていない古いパソコンによく発生するトラブルです。幸いにも、Windowsにはシステムユーティリティの1つとしてディスクチェックツールが標準搭載されており、ハードディスクの各パーティションをスキャンして、不良セクタや失われたセクタ、破損したファイルを検出することができます。ディスクチェックユーティリティによって検出・修復されるファイルは、システムトラブルの原因となることが多く、放置すればするほど深刻化する恐れがあります。そのため、このツールの使い方をマスターし、定期的にディスクチェックを実行して、パソコンを悩ませる問題を早めに解決しておくことが