Информация S.M.A.R.T SSD C#

Мне нужно создать вызов в моем приложении, чтобы проверить состояние работоспособности SSD. Я пробовал несколько примеров из разных источников, но ничего не могу заставить работать. Во всех примерах, которые я пробовал, я получаю исключение «Не поддерживается» в цикле ManagementObjectSearcherquery или foreach (ManagementObject data in searcher.Get()).

Все примеры, которые я нашел, довольно устарели, так что-нибудь изменилось? Я использую Windows 10 с .NET 4.6.2. Вы могли бы подумать, что будет «современный» вызов для доступа к данным SMART. Любая помощь будет принята с благодарностью! Благодарю вас!


person SYB    schedule 20.02.2019    source источник
comment
Можете ли вы предоставить образец кода? Как один метод, который должен это сделать?   -  person UnhandledExcepSean    schedule 21.02.2019
comment
Вы можете взглянуть на этот ответ. stackoverflow.com/a/14894138/2793683   -  person dmoore1181    schedule 21.02.2019
comment
Вот один пример, который сразу же дает сбой vasters.com/archive/   -  person SYB    schedule 21.02.2019
comment
@ dmoore1181 да, я попробовал это, и он вылетает в этом цикле с Не поддерживается: // check if SMART reports the drive is failing ... foreach (ManagementObject drive in searcher.Get()) { dicDrives[iDriveIndex].IsOK = (bool)drive.Properties["PredictFailure"].Value == false; iDriveIndex++; }   -  person SYB    schedule 21.02.2019
comment
Кстати, пример, предоставленный dmoore1181, предположительно разработан аналогично инструменту Crystal Disk, и тем не менее этот инструмент работает безупречно на моем компьютере.   -  person SYB    schedule 21.02.2019


Ответы (1)


Оказывается, что-то блокировало этот код на моем компьютере разработчика. Даже скрипт powerShell вернул ту же ошибку. Я запустил его на производственных машинах, и он работает так, как ожидалось. Не разбирался в этом на моем ПК для разработчиков, но это второстепенно.

person SYB    schedule 23.02.2019