Stavo tentando di ottenere informazioni sul disco di macchine remote, incluso se SMART è abilitato o meno sull'unità utilizzando la classe win32_diskdrive.
Questo è più complicato di quanto pensassi. Mentre è abbastanza facile leggere la proprietà status, ho scoperto qualcosa di interessante nella proprietà Capabilities, vale a dire il valore che indica se è disponibile "Notifica SMART". Questo valore non verrà visualizzato se il comando non viene eseguito in un contesto di sicurezza elevato. Quindi, ad esempio, se eseguo (gwmi win32_diskdrive). Capacità il valore SMART (10) non appare nella matrice di valori ma se lo eseguo in un prompt elevato, appare. Per quanto ne so, non è possibile eseguire una sessione winrm in un contesto elevato (e non mi interessano gli schtasks di schizzi di formaggio o i psexec).
Quindi ho provato a mappare win32_diskdrive sulla classe MSStorageDriver_FailurePredictStatus. Penso che dovrei farlo comunque perché anche se SMART appare nella proprietà Capabilities che non significa necessariamente che sia abilitato giusto?
Stavo mappando la proprietà PNPDeviceID di win32_diskdrive sulla proprietà InstanceName di MSStorageDriver_FailurePredictStatus, ma ora il mio problema è che non penso che la proprietà InstanceName sia abbastanza unica per funzionare. Ad esempio, ecco il mio InstanceName:IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0
Mostra il tipo di interfaccia (IDE) il numero di modello (ST3250312AS) la versione del firmware (JC47) quello che pensavo fosse un identificatore univoco di qualche tipo ( 5&350bf0c3&0&0.0.0
) quindi quello che sembra un numero indice (_0). Quando utilizzo Google 5&350bf0c3&0&0.0.0
, vengono visualizzate alcune informazioni sull'unità, quindi non credo che questo numero sia unico. Ciò significa che l'unicità è nel numero indice che non è incluso nella proprietà PNPDeviceID della classe win32_diskdrive. Questo è un problema perché molti dei nostri server hanno dischi multipli, identici.
La mia preoccupazione è che MSStorageDriver_FailurePredictStatus
rappresenterebbe più dischi come questo:
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
E la proprietà PNPDeviceID di win32_diskdrive di tutti loro sarebbe solo
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0
Come posso mappare in modo affidabile oggetti recuperati da win32_diskdrive MSStorageDriver_FailurePredictStatus
o farlo in un altro modo con PowerShell tramite sessioni remote?
Modifica :
Beh, sembra che stavo reagendo in modo eccessivo. Quando ho controllato un gruppo di server ho trovato InstanceNames \ PNPDeviceIDs come questo:
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000200_0
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000300_0
Se nessuno può confermarlo definitivamente, tra circa un giorno, supporrò solo che questo valore sia effettivamente unico e lo segnerò come "risposta".