Как получить все SMART-данные физических дисков StorageSpaces на. Net? - PullRequest
0 голосов
/ 01 марта 2020

Существует 2 самых популярных способа: PowerShell (PowerShell.Create()...) и WMI (ManagementObjectSearcher).

1) PowerShell Get-PhysicalDisk может правильно извлекать диски, но не имеет VendorSpecifi c собственность (SMART). Существует Get-StorageReliabilityCounter, который заполняет некоторые общие свойства SAMRT, но не все из них. В частности, он не показывает «Количество перераспределенных секторов» и «Ожидающие сектора»

enter image description here enter image description here

2) WMI SELECT * FROM Win32_DiskDrive можно запросить, но этот показывает виртуальные диски. Реальных физических дисков там нет. Для программного RAID (Добавить зеркало в управлении дисками) или для дисковых пространств реальные физические диски уже отфильтрованы. SELECT * FROM MSStorageDriver_FailurePredictData показывает информацию SMRART (VendorSpecifi c), которую я ищу, но также нет физических дисков и способа связать InstanceName с фактическим списком дисков.

enter image description here

В то же время, стороннее программное обеспечение может четко отображать как физические, так и виртуальные диски (само пространство хранения) и может показывать SMART для них:

enter image description here

В конце дня я хочу получить его в приложении. Net и я набрал в Google некоторый код, как извлечь эту информацию (количество перераспределенных секторов) из поля VendorSpecifi c объекта WMI, но я просто не вижу объекта WMI на реальных физических дисках.

1 Ответ

0 голосов
/ 13 апреля 2020

Видимо, главной проблемой для меня были USB-накопители на небольшом домашнем сервере. Нет простого решения для USB-устройств в дисковых пространствах или RAID. Все существующее программное обеспечение имеет множество проприетарного кода для поддержки SMART через USB для различных производителей (особенно CrystalDiskInfo, который может легко показать все SMART для всех USB-накопителей, спрятанных за дисковым пространством), поэтому он далек от 100 строк C# решения для кода.

Но я обнаружил, что первоначальная проблема (2 записи, которые мне нужны) на самом деле решается с помощью PowerShell, Microsoft просто переименовала некоторые метрики, делая их удобными для пользователя.

Так SMART конвертируется в -> PowerShell Get-StorageReliabilityCounter

Число перераспределенных секторов -> ReadErrorsCorrected

Ожидающие секторы -> ReadErrorsUncorrected

Это стало ясно, когда я получил обе записи на одном из дисков:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...