Существует 2 самых популярных способа: PowerShell (PowerShell.Create()...
) и WMI (ManagementObjectSearcher
).
1) PowerShell Get-PhysicalDisk
может правильно извлекать диски, но не имеет VendorSpecifi c собственность (SMART). Существует Get-StorageReliabilityCounter
, который заполняет некоторые общие свойства SAMRT, но не все из них. В частности, он не показывает «Количество перераспределенных секторов» и «Ожидающие сектора»
2) WMI SELECT * FROM Win32_DiskDrive
можно запросить, но этот показывает виртуальные диски. Реальных физических дисков там нет. Для программного RAID (Добавить зеркало в управлении дисками) или для дисковых пространств реальные физические диски уже отфильтрованы. SELECT * FROM MSStorageDriver_FailurePredictData
показывает информацию SMRART (VendorSpecifi c), которую я ищу, но также нет физических дисков и способа связать InstanceName с фактическим списком дисков.
В то же время, стороннее программное обеспечение может четко отображать как физические, так и виртуальные диски (само пространство хранения) и может показывать SMART для них:
В конце дня я хочу получить его в приложении. Net и я набрал в Google некоторый код, как извлечь эту информацию (количество перераспределенных секторов) из поля VendorSpecifi c объекта WMI, но я просто не вижу объекта WMI на реальных физических дисках.