by kusakari
6. 2月 2010 21:07
前回、PowerShellからS.M.A.R.T.情報を取得しました。
今回は、取得した項目ごとの値をメモとして残します。
項目ごとの値を確認するのに参考になるのは、下記URLのWikipediaが参考になるかと思います。
http://ja.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology
また、以下の内容に関しては、下記URLから情報を抜粋させて頂いています。
http://wiki.livedoor.jp/slt33333/d/SMART%a4%ce%b9%bd%c2%a4
今回は、温度とシークエラーを見てみたいので、必要となるIDは下記の通りです。
| 項目名 |
ID |
内容 |
| Seek Error Rate |
07 |
磁気ヘッドが目的のデータの在るトラックへ移動しようとして失敗した割合。数値が低い場合、ディスクの表面やディスクの機械的なシステムに問題がある可能性がある。 |
| Temperature |
194 |
ハードディスクの現在の温度 |
また下記の内容は、S.M.A.R.T.値のそれぞれの値に関するものです。
| 項目ID |
ステータスフラグ |
現在値 |
過去最小値 |
生の値x6 |
リザーブ |
| 1 |
11 0 |
100 |
100 |
0 0 0 0 0 0 |
0 |
さらに、温度に関しては次のようになっているみたいです。
| 項目ID |
ステータスフラグ |
現在値 |
過去最小値 |
摂氏 |
|
動作下限値 |
|
動作上限値 |
|
リザーブ |
| 194 |
34 0 |
100 |
100 |
42 |
0 |
17 |
0 |
53 |
0 |
0 |
ということで、前回のPowerShellのサンプルを少し変更して、HDDの温度を示すS.M.A.R.T.値だけ表示するようにしたのが下記の内容です。
$id = 194
$ret = ""
$smart = gwmi -Namespace root\WMI -Class MSStorageDriver_FailurePredictData
for($i = 2; $i -lt $smart.VendorSpecific.Length; $i += 12) `
{
if( $smart.VendorSpecific[$i] -eq $id ) `
{
for($j = $i; $j -le $i + 11; $j++) `
{
$ret += $smart.VendorSpecific[$j].ToString() + " "
}
}
}
write $ret
なお、例外処理は省略しています。
05c05eb6-6336-4318-8820-3cf07fa77025|0|.0
Category: PowerShell
Tags: