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,讓開發人員能夠在機器碼中撰寫 Windows PowerShell Cmdlet(C++)。
請勿混淆 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