首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >智能硬盘信息Powershell

智能硬盘信息Powershell
EN

Stack Overflow用户
提问于 2019-10-18 22:59:46
回答 4查看 10.6K关注 0票数 4

我正在寻找一种可能通过powershell的方法来获得任何给定设备上硬盘驱动器的智能数据。

我已经通过CMD和powershell尝试了WMI命令,但无法获得我正在寻找的适当数据。

Get-WmiObject -list

我希望在这个列表中找到一些适合SMART或REallocated空间的东西,但是没有找到相关的东西。任何人都知道有一种方法可以从硬盘中提取智能数据,而无需使用第三方应用程序。我想自动化一个识别故障驱动器的过程,但需要传递特定的信息,而不仅仅是是或否可能失败。

EN

回答 4

Stack Overflow用户

发布于 2020-01-10 13:10:26

在您的问题中,您已经请求了通用的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-StorageReliabilityCounter

“cmdlet获取指定磁盘或物理磁盘的存储可靠性计数器。这些计数器包括有关设备温度、错误、损耗和设备使用时间长度等信息。”

这是实际上将返回我们寻找的S.M.A.R.T.数据的cmdlet。但是,与您可能熟悉的许多其他cmdlet不同,此cmdlet需要通过PowerShell对象指向目标磁盘。(如果您是PowerShell的新手,这并不像听起来那么复杂,所以不要害怕。)

Get-Disk

Get- Disk cmdlet获取操作系统可见的一个或多个磁盘对象,或可选的筛选列表。”

这是我们将用来提供所需的PowerShell对象的cmdlet,以便Get-StorageReliabilityCounter知道要查询哪个磁盘。

-代码:

就像任何事情一样,有多种方法可以实际执行代码,所以在我看来,我只需要提供代码,以尽可能简单的方式获得所需的信息。

有关所有本地磁盘的简单S.M.A.R.T.信息的(以管理员身份运行):

代码语言:javascript
运行
复制
Get-Disk | Get-StorageReliabilityCounter

示例输出:

代码语言:javascript
运行
复制
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter

DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
1                    0                     0    5505
2                    0                     0    572
0                                          0    2799

所有本地磁盘上的扩展S.M.A.R.T.信息的(以管理员身份运行):

代码语言:javascript
运行
复制
 Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"

截断样本输出:

代码语言:javascript
运行
复制
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"

DeviceId                : 1
FlushLatencyMax         : 46
LoadUnloadCycleCount    :
LoadUnloadCycleCountMax :
ManufactureDate         :
PowerOnHours            : 5505
ReadErrorsCorrected     : 0
ReadErrorsTotal         : 0
ReadErrorsUncorrected   : 0
ReadLatencyMax          : 231
StartStopCycleCount     :
StartStopCycleCountMax  :
Temperature             : 27
TemperatureMax          : 0
Wear                    : 0
WriteErrorsCorrected    :
WriteErrorsTotal        :
WriteErrorsUncorrected  :
WriteLatencyMax         : 69
PSComputerName          :

正如您所看到的,列出了一些可取的指标,这些指标可能会也可能不会让您规避灾难。

用于获取ReadErrorsCorrected 属性(也称为重新分配的扇区)中包含的值的(以管理员身份运行):

代码语言:javascript
运行
复制
 Get-Disk | Get-StorageReliabilityCounter | Select-Object -ExpandProperty "ReadErrorsCorrected"

示例输出:

代码语言:javascript
运行
复制
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter | Select-Object -ExpandProperty "ReadErrorsCorrected"
0

在这一点上,一些用于检测任何重新分配的地段的脚本可以检查此值是否为0以外的值,并相应地进行报告。

- tl;dr:

代码语言:javascript
运行
复制
Get-Disk | Get-StorageReliabilityCounter

代码语言:javascript
运行
复制
Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"

以管理员身份使用获取最重要的S.M.A.R.T.信息。

票数 5
EN

Stack Overflow用户

发布于 2017-08-17 10:00:13

在谷歌上找到了这个: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/

代码语言:javascript
运行
复制
Get-WmiObject `
    -namespace root\wmi `
    –class MSStorageDriver_FailurePredictStatus `
    -ErrorAction Silentlycontinue `
| Select InstanceName, PredictFailure, Reason `
| Format-Table –Autosize
票数 3
EN

Stack Overflow用户

发布于 2019-10-19 04:25:07

我想这就是你需要的:

代码语言:javascript
运行
复制
Get-Disk | foreach { $_ | Get-StorageReliabilityCounter | Format-List }

这将为您提供所有已连接磁盘的ReadErrorsCorrectedWriteErrorsCorrected统计信息。

我找不到微软文档的相关部分来确保我在这里是100%正确的,但根据这个文档,我假设重新分配的扇区计数是更正的读/写扇区的总数:https://kb.acronis.com/content/9105

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58453447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档