about_WMI
簡短描述
Windows Management Instrumentation (WMI) 使用 Common Information Model (CIM) 來代表新式企業的系統、應用程式、網路、裝置和其他可管理元件。
詳細描述
Windows Management Instrumentation (WMI) 是 Microsoft 實作 Web 型企業管理 (WBEM)的業界標準。
傳統 WMI 會使用 DCOM 與網路裝置通訊,以管理遠端系統。 Windows PowerShell 3.0 引進使用 WinRM 移除 DCOM 相依性 CIM 提供者模型。 此 CIM 提供者模型也會使用新的 WMI 提供者 API,讓開發人員能夠在機器碼 (C++) 中撰寫 Windows PowerShell Cmdlet。
請勿混淆 WMI 提供者與 Windows PowerShell 提供者。 許多 Windows 功能都有相關聯的 WMI 提供者,可公開其管理功能。 若要取得 WMI 提供者,請執行 WMI 查詢,以取得__Provider WMI 類別的實例,例如下列查詢。
Get-WmiObject -Class __Provider
WMI 的三個元件
下列三個 WMI 元件會與 Windows PowerShell 互動:命名空間、提供者和類別。
WMI 命名空間會將 WMI 提供者和 WMI 類別組織成相關元件的群組。 如此一來,它們就類似於 .NET Framework 命名空間。
命名空間不是實體位置,但更像是邏輯資料庫。 所有 WMI 命名空間都是__Namespace系統類別的實例。 默認 WMI 命名空間為 root/cimv2
(自 Microsoft Windows 2000 起)。 若要使用 Windows PowerShell 來取得目前會話中的 WMI 命名空間,請使用具有下列格式的命令。
Get-WmiObject -Class __Namespace
若要取得其他命名空間中的 WMI 命名空間,請使用 Namespace 參數來變更搜尋的位置。 下列命令會尋找位於 命名空間中的 root/cimv2/Applications
WMI 命名空間。
Get-WmiObject -Class __Namespace -Namespace root/cimv2/applications
WMI 命名空間是階層式的。 因此,取得特定系統上所有命名空間的清單,需要從根命名空間開始執行遞歸查詢。
WMI 提供者會公開 Windows 可管理對象的相關信息。 提供者會從元件擷取數據,並透過WMI將數據傳遞至管理應用程式,例如 Windows PowerShell。 大部分的 WMI 提供者都是動態提供者,這表示當透過管理應用程式要求數據時,它們會以動態方式取得數據。
尋找 WMI 類別
在 Windows 8 的預設安裝中,在中 root/cimv2
有超過 1,100 個 WMI 類別。 有了這個許多 WMI 類別,挑戰就會變成識別要用來執行特定工作的適當 WMI 類別。 Windows PowerShell 3.0 提供兩種方式來尋找與特定主題相關的 WMI 類別。
例如,若要在與磁碟相關的 WMI 命名空間中 root/cimv2
尋找 WMI 類別,您可以使用查詢,例如這裡所示的查詢。
Get-WmiObject -List *disk*
若要尋找與記憶體相關的 WMI 類別,您可以使用查詢,例如這裡所示的查詢。
Get-WmiObject -List *memory*
CIM Cmdlet 也提供探索 WMI 類別的能力。 若要這樣做,請使用 Get-CimClass
Cmdlet。 此處顯示的命令會列出與影片相關的 WMI 類別。
Get-CimClass *video*
索引標籤擴充可在變更 WMI 命名空間時運作,因此使用索引標籤擴充可輕易探索子 WMI 命名空間。 在下列範例中 Get-CimClass
,Cmdlet 會列出與電源設定相關的WMI 類別。
若要尋找它,請輸入 root/cimv2
命名空間,然後按 Tab 鍵數次,直到電源命名空間出現為止。 以下是命令:
Get-CimClass *power* -Namespace root/cimv2/power