如何读取HDD SMART属性?

Ger*_*rgA 3 powershell wmi monitoring zabbix windows-7

我会在我的Windows 7客户端上监控智能硬盘.

我想获得HDD智能属性,而不使用任何vbs文件或现成的工具只是期待WMI或PowerShell.

我会用ZABBIX监控服务器(使用zabbix-sender.exe)聚合该数据.

我发现了一个或多或少的Linux解决方案,但我会监视Windows 7机器硬盘.

有人有想法吗?

von*_*ryz 5

使用WMI API访问SMART数据,

gwmi -namespace root\wmi -class MSStorageDriver_FailurePredictStatus
Run Code Online (Sandbox Code Playgroud)

网络中有更多的例子.

  • 不幸的是它没有提供足够的信息。我会得到基于 ID 的值。像 03 - spin_up_time 00 (2认同)

小智 2

这是一个 powershell 脚本,它从 smartctl (smartmontools) 输出中提取所有属性数据。如果 smartctl 的路径不在您的 %path% 中,则调整它。

它可以这样使用:

.\get-smart.ps1 -Drive hda -AttributeId 5,241 -Property Name,Raw -FriendlyOutput
Run Code Online (Sandbox Code Playgroud)

要不就

.\get-smart.ps1 hda 5,241 Name,Raw -f
Run Code Online (Sandbox Code Playgroud)

等等。如果您指定 -FriendlyOutput 它将数据格式化为表,否则它会给您一个对象。如果您只对特定值感兴趣,请使用

.\get-smart.ps1 hda 241 Raw
Run Code Online (Sandbox Code Playgroud)

请注意,如果 smartctl 未以管理员身份运行,则某些属性(例如阈值)不会出现。

还没有异常处理!你被警告了!

.\get-smart.ps1 -Drive hda -AttributeId 5,241 -Property Name,Raw -FriendlyOutput
Run Code Online (Sandbox Code Playgroud)