Bra*_*der 6 powershell hard-drive
我正在寻找一种通过可能的 powershell 来获取任何给定设备上硬盘驱动器的 SMART 数据的方法。
我已经通过 CMD 和 powershell 尝试过 WMI 命令,但无法获得我正在寻找的适当数据。
获取 WmiObject -列表
我希望在此列表中找到 SMART 或重新分配空间的内容,但没有找到任何相关内容。任何人都知道一种在不使用第三方应用程序的情况下从驱动器中提取智能数据的方法。我想自动化识别故障驱动器的过程,但需要转发特定信息,而不仅仅是“是”或“否”是否可能发生故障。
小智 10
在您的问题中,您请求了通用 SMART 信息以及特定于重新分配扇区的信息。我将首先通过 PowerShell 解决 SMART 交互,然后提供示例代码以返回与重新分配的扇区相关的属性(也称为属性ReadErrorsCorrected)。这应该允许您在需要时定位指定的属性和其他 SMART 属性。
不幸的是,似乎没有一种方法可以仅通过 PowerShell 从各种存储设备获取所有可用的 SMART 信息,因为它是功能的相当通用的实现,并且 SMART 的实现在不同存储设备供应商中各不相同。
尽管如此,下面描述的方法应该满足用户执行的典型 SMART 检查的关键要求,包括预测寿命、重新分配和不可纠正的扇区等,尽管使用相当通用的 PowerShell 术语(例如寿命=“磨损”)。
通过两个PowerShell cmdlet的组合,我们可以轻松查看存储设备提供的一些SMART数据:
“ Get-StorageReliabilityCounter cmdlet 获取指定磁盘或物理磁盘的存储可靠性计数器。这些计数器包括有关设备温度、错误、磨损以及设备使用时间长度等信息。”
这是实际返回我们寻求的 SMART 数据的 cmdlet。但是,与您可能熟悉的许多其他 cmdlet 不同,此 cmdlet 需要通过 PowerShell 对象指向目标磁盘。(如果您是 PowerShell 新手,这并不像听起来那么复杂,所以不用担心。)
“ Get-Disk cmdlet 获取操作系统可见的一个或多个磁盘对象,或者可选的筛选列表。”
这是我们将用来提供所需 PowerShell 对象的 cmdlet,以便 Get-StorageReliabilityCounter 知道要查询哪个磁盘。
与任何事情一样,实际执行代码的方法有多种,因此我认为,我将提供代码以尽可能简单的方式获取所需的信息。
对于所有本地磁盘上的简单 SMART 信息(以管理员身份运行):
Get-Disk | Get-StorageReliabilityCounter
Run Code Online (Sandbox Code Playgroud)
示例输出:
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter
DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
1 0 0 5505
2 0 0 572
0 0 2799
Run Code Online (Sandbox Code Playgroud)
对于所有本地磁盘上的扩展 SMART 信息(以管理员身份运行):
Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"
Run Code Online (Sandbox Code Playgroud)
截断的样本输出:
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 :
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,列出了一些可能或可能不允许您避免灾难的理想指标。
要获取属性中包含的值ReadErrorsCorrected(也称为重新分配的扇区)(以管理员身份运行):
Get-Disk | Get-StorageReliabilityCounter | Select-Object -ExpandProperty "ReadErrorsCorrected"
Run Code Online (Sandbox Code Playgroud)
示例输出:
PS C:\WINDOWS\system32> Get-Disk | Get-StorageReliabilityCounter | Select-Object -ExpandProperty "ReadErrorsCorrected"
0
Run Code Online (Sandbox Code Playgroud)
从这一点来看,一些检测任何重新分配扇区的脚本可以检查该值是否为其他值0并进行相应报告。
跑步
Get-Disk | Get-StorageReliabilityCounter
Run Code Online (Sandbox Code Playgroud)
或者
Get-Disk | Get-StorageReliabilityCounter | Select-Object -Property "*"
Run Code Online (Sandbox Code Playgroud)
作为管理员获取最重要的 SMART 信息。
在谷歌上找到了这个: https: //blogs.msdn.microsoft.com/san/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-在它发生之前失败/
\nGet-WmiObject `\n -namespace root\\wmi `\n \xe2\x80\x93class MSStorageDriver_FailurePredictStatus `\n -ErrorAction Silentlycontinue `\n| Select InstanceName, PredictFailure, Reason `\n| Format-Table \xe2\x80\x93Autosize\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
24310 次 |
| 最近记录: |