Saya mencoba untuk mendapatkan info disk dari mesin jarak jauh, termasuk apakah SMART diaktifkan atau tidak pada drive dengan menggunakan kelas win32_diskdrive.
Ini lebih sulit daripada yang saya kira. Meskipun cukup mudah membaca properti status saya menemukan sesuatu yang menarik di properti Capabilities - yaitu nilai yang menunjukkan jika "Pemberitahuan SMART" tersedia. Nilai ini tidak akan muncul kecuali perintah dijalankan dalam konteks keamanan yang ditinggikan. Jadi misalnya jika saya menjalankan (gwmi win32_diskdrive) .Kemampuan nilai SMART (10) belum muncul dalam array nilai namun jika saya menjalankannya dalam prompt yang ditinggikan itu muncul. Sejauh yang saya tahu Anda tidak dapat menjalankan sesi winrm dalam konteks yang tinggi (dan saya tidak tertarik dengan hack schtasks atau psexec).
Jadi saya mencoba memetakan win32_diskdrive ke kelas MSStorageDriver_FailurePredictStatus. Saya pikir saya tetap harus melakukan ini karena walaupun SMART muncul di properti Capabilities itu tidak berarti diaktifkan kan?
Saya memetakan properti PNPDeviceID dari win32_diskdrive ke properti InstanceName dari MSStorageDriver_FailurePredictStatus, tetapi sekarang masalah saya adalah saya tidak berpikir bahwa properti InstanceName cukup unik untuk berfungsi. Misalnya di sini adalah InstanceName saya:IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0
Ini menunjukkan jenis antarmuka (IDE) nomor model (ST3250312AS) versi firmware (JC47) apa yang saya pikir adalah pengidentifikasi unik dari beberapa jenis ( 5&350bf0c3&0&0.0.0
) lalu apa yang tampak seperti nomor indeks (_0). Ketika saya google 5&350bf0c3&0&0.0.0
itu muncul beberapa info pada drive jadi saya tidak berpikir nomor ini unik. Itu berarti keunikannya adalah dalam nomor indeks yang tidak termasuk dalam properti PNPDeviceID dari kelas win32_diskdrive. Ini adalah masalah karena banyak dari server kami memiliki banyak disk yang identik.
Kekhawatiran saya adalah bahwa MSStorageDriver_FailurePredictStatus
akan mewakili banyak disk seperti ini:
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
Dan properti PNPDeviceID dari win32_diskdrive semuanya akan menjadi
IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0
Bagaimana saya bisa memetakan objek yang diambil dari win32_diskdrive ke MSStorageDriver_FailurePredictStatus
atau melakukan ini dengan cara lain dengan menggunakan PowerShell melalui sesi jarak jauh?
Edit :
Sepertinya saya bereaksi berlebihan. Ketika saya memeriksa banyak server, saya menemukan InstanceNames \ PNPDeviceIDs seperti ini:
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000200_0
SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000300_0
Jika tidak ada yang dapat mengkonfirmasi ini secara meyakinkan, dalam sehari atau lebih, saya hanya akan menganggap nilai ini benar-benar unik dan menandainya sebagai "jawaban".
sumber
Device Instance ID
juga disebut sebagai instance-spesifik-ID . Manajer PnP memberikan pengidentifikasi unik untuk setiap "devnode" di bagan perangkat. Karena devnode dapat memiliki beberapa perangkat, ini mengindeksnya sehingga unik untuk manajer PnP. Inilah sebabnya mengapa Anda mendapatkan _X ditambahkan keDevice Instance ID
. Saya akan mengedit jawaban asli saya dengan beberapa tautan yang akan membantu Anda menjelajahi ini lebih jauh, jika Anda memilih untuk melakukannya.Jika Anda terhubung ke namespace WMI jarak jauh menggunakan akun domain yang merupakan anggota grup administrator lokal komputer jarak jauh, pemfilter token UAC tidak akan berlaku.
Ketika saya mengatakan connect, maksud saya dengan menentukan -komputer parameter untuk Get-WMIObject (maaf, bukan penggemar alias - Saya adalah penggemar besar atas pembacaan dan rawatan!).
sumber