Я пытался получить информацию о диске удаленных машин, в том числе о том, включен ли SMART на диске с помощью класса win32_diskdrive.
Это сложнее, чем я думал. Хотя прочитать свойство status довольно просто, я обнаружил кое-что интересное в свойстве Capabilities, а именно значение, обозначающее, доступно ли «SMART Notification». Это значение не появится, если команда не выполняется в контексте повышенной безопасности. Так, например, если я запускаю (gwmi win32_diskdrive). Возможности, значение SMART (10) еще не появляется в массиве значений, если я запускаю его в приглашении с повышенными правами, оно появляется. Насколько я знаю, вы не можете запустить сеанс winrm в повышенном контексте (и меня не интересуют хитрые взломы schtasks или psexec).
Затем я попытался сопоставить win32_diskdrive с классом MSStorageDriver_FailurePredictStatus. Я думаю, что мне все равно придется это делать, потому что даже если SMART появляется в свойстве Capabilities, это не обязательно означает его включенное право?
Я сопоставлял свойство PNPDeviceID win32_diskdrive со свойством InstanceName объекта MSStorageDriver_FailurePredictStatus, но теперь моя проблема заключается в том, что я не думаю, что свойство InstanceName достаточно уникально, чтобы это работало. Например вот мое имя экземпляра:IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0
Он показывает тип интерфейса (IDE), номер модели (ST3250312AS), версию прошивки (JC47), который, как я думал, был уникальным идентификатором некоторого вида ( 5&350bf0c3&0&0.0.0
), а затем то, что выглядит как индексный номер (_0). Когда я гуглюсь, 5&350bf0c3&0&0.0.0
появляется какая-то информация на диске, поэтому я не думаю, что это число уникально. Это означает, что уникальность заключается в номере индекса, который не включен в свойство PNPDeviceID класса win32_diskdrive. Это проблема, потому что многие из наших серверов имеют несколько одинаковых дисков.
Меня беспокоит то, что MSStorageDriver_FailurePredictStatus
будет представлять несколько дисков, как это:
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_1
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_2
И свойство PNPDeviceID win32_diskdrive для всех них будет просто
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0
Как я могу надежно отобразить объекты, полученные из win32_diskdrive, MSStorageDriver_FailurePredictStatus
или сделать это по-другому с powershell через удаленные сеансы?
Редактировать :
Ну, похоже, я слишком сильно реагировал. Когда я проверил несколько серверов, я обнаружил InstanceNames \ PNPDeviceIDs вот так:
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000200_0
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000300_0
Если никто не сможет окончательно подтвердить это, через день или около того, я просто предположу, что это значение действительно уникально, и пометить это как «ответ».