- 此问题在此处已有答案**:
How to read HDD S.M.A.R.T. attributes?(5个答案)
三年前关闭了。
我正在寻找一种方法,可能通过powershell获得智能数据的硬盘驱动器上的任何给定的设备。
我已经尝试了wmi命令都通过cmd和powershell,我已经看到,但一直无法获得适当的数据,我正在寻找。
获取WmiObject列表
我希望在此列表中找到智能或重新分配空间的东西,但没有找到相关的东西。任何人都知道一种方法来从驱动器中提取智能数据,而不使用第三方应用程序。我想自动识别故障驱动器的过程,但需要特定的信息来中继,而不仅仅是是是或否,它可能会失败。
4条答案
按热度按时间5us2dqdw1#
在您的问题中,您请求了通用的S.M.A.R.T.信息和特定于重新分配的扇区的信息。我将首先通过PowerShell解决S.M.A.R.T.交互,然后给予示例代码以返回与重新分配的扇区相关的属性(也称为
ReadErrorsCorrected
属性)。这应该允许您在需要时定位指定的属性和其他S.M.A.R.T.属性。前言
不幸的是,似乎没有一种方法可以仅通过PowerShell从各种存储设备获得 * 所有 * S.M.A.R.T.信息,因为这是一种相当通用的功能实现,而且S.M.A.R.T.的实现因存储设备供应商而异。
话虽如此,下面描述的方法应该满足用户执行的典型S.M.A.R.T.检查的关键要求,包括预测寿命、重新分配和不可纠正的扇区等,尽管使用了相当通用的PowerShell术语(例如,寿命=“磨损”)。
信息
结合使用两个PowerShell cmdlet,我们可以轻松查看存储设备提供的一些S.M.A.R.T.数据:
Get-StorageReliabilityCounter
Get-StorageReliabilityCountercmdlet获取指定磁盘或物理磁盘的存储可靠性计数器。这些计数器包括有关设备温度、错误、磨损和设备已使用时间长度等信息。
这是将实际返回我们查找的S.M.A.R.T.数据的cmdlet。但是,与您可能熟悉的许多其他cmdlet不同,此cmdlet需要通过PowerShell对象指向目标磁盘。(如果您是PowerShell新手,这并不像听起来那么复杂,所以不必担心。)
Get-Disk
Get-Diskcmdlet获取操作系统可见的一个或多个磁盘对象,或选择性地获取筛选列表。
这是我们将用于提供所需PowerShell对象的cmdlet,以便Get-StorageReliabilityCounter知道要查询哪个磁盘。
编号
与任何事情一样,实际执行代码的方法有多种,因此我将提供代码,以尽可能简单的方式获取所需的信息。
有关所有本地磁盘的简单S.M.A.R.T.信息(以管理员身份运行):
样本输出:
有关所有本地磁盘上的扩展S.M.A.R.T.信息(以管理员身份运行):
截断的样本输出:
正如您所看到的,这里列出了一些理想的指标,它们可能会也可能不会帮助您规避灾难。
要获取
ReadErrorsCorrected
属性中包含的值(也称为重新分配的扇区)(以管理员身份运行):样本输出:
从这一点,一些脚本检测任何重新分配的扇区可以检查,看看这个值是否是
0
以外的任何东西,并相应地报告。时间;日期
跑
或
作为管理员获取最重要的S.M.A.R.T.信息。
pu3pd22g2#
在谷歌上找到这个:https://blogs.msdn.microsoft.com/san/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-fail-before-it-does/
ovfsdjhp3#
我想这就是你需要的
这将为您提供所有连接磁盘的
ReadErrorsCorrected
和WriteErrorsCorrected
统计信息。我找不到相关的Microsoft文档来确保我在这里是100%正确的,但根据此文档,我假设重新分配的扇区计数是更正的读/写扇区总数:https://kb.acronis.com/content/9105
b4lqfgs44#