如何获取所有S.M.A.R.T. .Net上的StorageSpaces物理磁盘的数据?

问题描述 投票:0回答:1

有两种最流行的方式:PowerShell(PowerShell.Create()...)和WMI(ManagementObjectSearcher)。

1] PowerShell Get-PhysicalDisk可以正确检索磁盘,但是它没有VendorSpecific属性(SMART)。有Get-StorageReliabilityCounter填充一些常用的SAMRT属性,但不是全部。具体来说,它不显示“重新分配的扇区数”和“待处理的扇区”

enter image description hereenter image description here

2)可以查询WMI SELECT * FROM Win32_DiskDrive,但这显示了虚拟磁盘。实际的物理磁盘不存在。对于软件RAID(在磁盘管理中添加镜像)或对于存储空间,实际的物理磁盘已被过滤掉。 SELECT * FROM MSStorageDriver_FailurePredictData显示了我正在寻找的SMRART(特定于Vendor)信息,但是也没有物理驱动器,也没有办法将“ InstanceName”与磁盘的实际列表关联。

enter image description here

同时,第三方软件可以清楚地显示物理磁盘和虚拟磁盘(存储空间本身),并可以为它们显示SMART:

enter image description here

最终,我希望将其存储在.Net应用程序中,并且我在Google代码中搜索了如何从WMI对象的VendorSpecific字段中提取此信息(重新分配的扇区数),但我只是看不到实际的WMI对象物理磁盘。

.net windows powershell wmi
1个回答
0
投票

显然,对我来说,主要问题是小型家用服务器上的USB驱动器。对于存储空间或RAID上的USB设备,没有简单的解决方案。所有现有软件都有大量专有代码来支持不同制造商通过USB提供的SMART(特别是CrystalDiskInfo,它可以轻松显示隐藏在存储空间后面的所有USB驱动器的所有SMART),因此与100行C#代码解决方案相距甚远。

但是我发现最初的问题(我需要的2条记录)实际上是通过PowerShell解决的,Microsoft刚刚重命名了一些指标使其变得易于使用。

这是SMART转换为-> PowerShell Get-StorageReliabilityCounter

重新分配的扇区数-> ReadErrorsCorrected

待定部门-> ReadErrorsUncorrected

当我在一个驱动器上同时获得两个记录时,这一点很明显:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.