about_WMI

適用於: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

主題

about_WMI

簡短描述

Windows Management Instrumentation (WMI) 會使用通用訊息模型 (CIM) 來代表現代企業的系統、應用程式、網路、裝置和其他可管理元件。

詳細描述

Windows Management Instrumentation (WMI) 是 Microsoft 之 Web 架構企業管理 (WBEM) 業界標準的實作。

傳統的 WMI 會使用 DCOM 與網路裝置進行通訊,以管理遠端系統。Windows PowerShell®3.0 引入 CIM 提供者模型,其使用 WinRM 來移除 DCOM 的相依性。這個 CIM 提供者模型也使用新的 WMI 提供者 API,可讓開發人員以原生語言 (C++) 撰寫 Windows PowerShell Cmdlet。

請勿將 WMI 提供者和 Windows PowerShell 提供者混淆。許多 Windows 功能都有相關聯的 WMI 提供者,這些提供者會公開其管理功能。若要取得 WMI 提供者,請執行取得 __Provider WMI 類別執行個體的 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 命名空間的 WMI 命名空間。

        Get-WmiObject -Class __Namespace -Namespace 
        root/CIMv2/applications

WMI 命名空間為階層式。因此,取得特定的系統上所有命名空間的清單,會需要根命名空間開始執行遞迴查詢。

WMI 提供者會公開 Windows 可管理物件的相關資訊。提供者從元件中擷取資料,並透過 WMI 傳遞該資料給管理應用程式,例如 Windows PowerShell。大部分的 WMI 提供者是動態的提供者,這表示在經由管理應用程式提出要求時,他們會以動態方式取得資料。

尋找 WMI 類別

在預設安裝的 Windows 8 中,Root/Cimv2 內有超過 1100 種的 WMI 類別。有了這麼多的 WMI 類別,識別適當的 WMI 類別以便用來執行特定工作成了一種挑戰。Windows PowerShell 3.0 提供兩種方式來找到和特定主題相關的 WMI 類別。

例如,若要尋找 root\CIMV2 WMI 命名空間中與磁碟相關的 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/ WMI 命名空間,然後按下 Tab 鍵多次,直到 power 命名空間出現為止。命令如下:

        Get-CimClass *power* -Namespace root/cimv2/power