J'essayais d'obtenir des informations sur le disque des machines distantes, notamment si SMART est activé ou non sur le lecteur en utilisant la classe win32_diskdrive.
C'est plus compliqué que je ne le pensais. Bien qu'il soit assez facile de lire la propriété status, j'ai découvert quelque chose d'intéressant dans la propriété Capabilities, à savoir la valeur indiquant si "SMART Notification" est disponible. Cette valeur n'apparaîtra que si la commande est exécutée dans un contexte de sécurité élevé. Ainsi, par exemple, si je lance (gwmi win32_diskdrive) .Capacités, la valeur SMART (10) n'apparaît pas encore dans le tableau de valeurs si je l'exécute dans une invite élevée, elle apparaît. Autant que je sache, vous ne pouvez pas exécuter une session winrm dans un contexte élevé (et je ne suis pas intéressé par les hacks schtasks au fromage ou psexec).
Alors j'ai essayé de mapper win32_diskdrive à la classe MSStorageDriver_FailurePredictStatus. Je pense que je devrais le faire de toute façon parce que même si SMART apparaît dans la propriété Capabilities, cela ne signifie pas nécessairement qu'il est activé, non?
Je mappais la propriété PNPDeviceID de win32_diskdrive à la propriété InstanceName de MSStorageDriver_FailurePredictStatus, mais maintenant mon problème est que je ne pense pas que la propriété InstanceName soit suffisamment unique pour que cela fonctionne. Par exemple, voici mon InstanceName:IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0
Il montre le type d'interface (IDE) le numéro de modèle (ST3250312AS) la version du firmware (JC47) ce que je pensais être un identifiant unique d'une sorte ( 5&350bf0c3&0&0.0.0
) puis ce qui ressemble à un numéro d'index (_0). Lorsque je google, 5&350bf0c3&0&0.0.0
il affiche des informations sur le lecteur, donc je ne pense pas que ce numéro est unique. Cela signifie que l'unicité est dans le numéro d'index qui n'est pas inclus dans la propriété PNPDeviceID de la classe win32_diskdrive. Il s'agit d'un problème car bon nombre de nos serveurs ont plusieurs disques identiques.
Ma préoccupation est que MSStorageDriver_FailurePredictStatus
cela représenterait plusieurs disques comme celui-ci:
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
Et la propriété PNPDeviceID de win32_diskdrive de tous serait simplement
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0
Comment puis-je mapper de manière fiable des objets récupérés à partir de win32_diskdrive MSStorageDriver_FailurePredictStatus
ou faire cela d'une autre manière avec PowerShell via des sessions distantes?
Modifier :
On dirait que je réagissais de façon excessive. Lorsque j'ai vérifié un groupe de serveurs, j'ai trouvé InstanceNames \ PNPDeviceIDs comme ceci:
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000200_0
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000300_0
Si personne ne peut le confirmer de manière concluante, dans un jour ou deux, je supposerai simplement que cette valeur est réellement unique et la marquerai comme la "réponse".