PowerShell で HDDの温度を取得

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


なお、例外処理は省略しています。

コメントを書く


(アイコンを表示しますか Gravatar )

  Country flag

biuquote
  • コメント
  • プレビュー
Loading



Calendar

<<  3月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

RecentComments

Comment RSS