Windows-Server-2008-R2
在重建儲存庫之前列出第 3 方 WMI 提供程序
在我將重建整個儲存庫之前,我正在尋找一些列出 WMI 3rd 方提供程序的 Powershell cmdlet/腳本。
有 GWMI cmdlet 列出了所有 WMI 對象,但我缺少諸如*“Company:” 之*類的內容,然後我將使用過濾器列出非 Microsoft WMI。
Get-WmiObject -List | fl * ... PSComputerName : MyComputer Name : __SystemClass __GENUS : 1 __CLASS : __SystemClass __SUPERCLASS : __DYNASTY : __SystemClass __RELPATH : __SystemClass __PROPERTY_COUNT : 0 __DERIVATION : {} __SERVER : MyComputer __NAMESPACE : ROOT\CIMV2 __PATH : \\MyComputer\ROOT\CIMV2:__SystemClass Path : \\MyComputer\ROOT\CIMV2:__SystemClass Derivation : {} Methods : {} Scope : System.Management.ManagementScope Options : System.Management.ObjectGetOptions ClassPath : \\MyComputer\ROOT\CIMV2:__SystemClass Properties : {} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {abstract} Site : Container : ....
有什麼方法可以檢測 3rd 方 WMI 提供程序?感謝您的任何幫助。
鑑於 WMI 是如何建構和實現的,您在一個神奇的解決方案上有點 SOL。我可以為你提供一些幫助,但你仍然需要關注結果。本質上,您需要從可以使用以下程式碼獲得的提供者列表開始:
$Providers = Get-WmiObject "__win32provider"
如果數組計數很短,則提供程序名稱。Microsoft 沒有使用標準命名約定,因此您可以忘記使用“MSProvider”之類的有用內容進行過濾。
建議並要求第 3 方為他們自己的命名空間創建他們的提供者,但不是必需的。任何不在“CIMV2”中的東西都應該突出並更仔細地觀察。作為參考,您可以在此處查看第 3 方如何註冊 WMI 提供程序以及這樣做時需要哪些資訊。
上面程式碼返回的對像有一個 CLSID 屬性,該屬性對應於它們在 Windows 系統資料庫中的條目。您可以遍歷它們並查詢系統資料庫,看看第 3 方是否將任何值添加到您可以用來辨識它們的鍵中。
狩獵愉快。