by kusakari
4. 2月 2010 19:17
PowerShellから、HDDのS.M.A.R.T.情報を取得してみたいと思います。
参考元:http://wiki.livedoor.jp/slt33333/d/SMART%a4%ce%b9%bd%c2%a4
S.M.A.R.T.を取得するためのWMI名前空間は「root\wmi」になります。
また、クラスは「MSStorageDriver_FailurePredictData」になります。
PowerShellから実際に、MSStorageDriver_FailurePredictDataを作るには下記のような感じになります。
Get-WmiObject -Namespace root\WMI -Class MSStorageDriver_FailurePredictData
作った MSStorageDriver_FailurePredictData の VendorSpecific にS.M.A.R.T.の値があります。
■サンプル
11個の値で1項目を表すみたいなので、見栄えが良いように整えています。
また、出力結果は各自のHDDによって変わります。
$ret = ""
$cnt = 0
$smart = gwmi -Namespace root\WMI -Class MSStorageDriver_FailurePredictData
for($i = 2; $i -lt $smart.VendorSpecific.Length; $i += 12) `
{
$cnt++
for($j = $i; $j -le $cnt * 12; $j++) `
{
if($smart.VendorSpecific[$j] -ne $null) `
{
$ret += $smart.VendorSpecific[$j].ToString().PadLeft(4, ' ')
}
}
$ret += "`r`n"
}
write $ret
■結果

次回は、HDDの温度やシークエラーなどにスポットを当てみたいと思います。
9b746c01-8fa3-483e-b924-8cd2a7ea99c9|1|5.0
Category: PowerShell
Tags: