共用方式為


建立 WMI 用戶端

WMI 提供一個標準化的系統管理基礎結構,可供數個不同的用戶端利用。 這些客戶端的範圍從 wmic.exe 命令行工具到 System Center Operations Manager。 您可以使用 WMI 腳本 API、原生C++ API,或使用 System.Management .NET Framework 類別庫命名空間中的類型來撰寫自己的 WMI 用戶端。

如何建立 WMI 用戶端

WMI 的核心功能包含從 WMI 存放庫擷取物件,以及檢查這些對象的屬性。 您也可以選擇更新這些屬性,或針對這些屬性呼叫相關的方法。 下列範例示範如何進行基本的 WMI 管理工作:擷取本機電腦的名稱。

術語 描述
使用PowerShell建立用戶端
WMI 和 PowerShell 緊密整合;因此,使用 PowerShell 擷取 WMI 物件只是呼叫 Get-WmiObject Cmdlet 的問題。 請注意,為了一致性,第一個代碼段會明確指出許多預設值;第二個假設預設值正確。

PowerShell
              
              #explicitly 明確地指出許多預設參數 $myComputer = Get-WmiObject -ComputerName "." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem" foreach ($computer in $myComputer) { "系統名稱: " + $computer.name }

#assumes the default values are correct Get-WmiObject Win32_ComputerSystem | Format-Table "Name"

使用 VBScript 建立用戶端

VBScript 是與 WMI 通用的原始腳本語言。 雖然 PowerShell 變得更受歡迎,但本檔中的許多現有程式代碼範例都是以 VBScript 撰寫。 請注意,這個特定的 VBScript 範例會明確指出本機計算機路徑和模擬層級;這不是必要的,但通常是最佳做法。

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
    Wscript.Echo "Computer Name: " & objItem.Name
Next

使用 C# 建立用戶端 (Microsoft.Management.Infrastructure

此命名空間包含使用 Managed 程式代碼存取 WMI 的目前解決方案,稱為 Windows 管理基礎結構(MI 或 WMIv2)。 目前,MI 是建立受控管理用戶端的支持技術。 如需詳細資訊,請參閱 如何實作受控MI用戶端如何實作原生MI用戶端

C#
              
              使用 Microsoft.Management.Infrastructure;...CimSession 會話 = CimSession.Create(“localHost”);IEnumerable<CimInstance> queryInstance = session.QueryInstances(“root\\cimv2”、“WQL”、“SELECT * FROM Win32_ComputerSystem”);

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

使用 C# 建立用戶端 (System.Management

此命名空間包含使用受管理程式碼存取WMI的原始解决方案。 雖然 System.Management 類別仍可供使用,但 Microsoft.Management.Infrastructure 類別通常會更有效率且更具延展性。 因此,建議您使用 MI 類別,而不是原始 WMI 類別。

C#
              
              使用 Microsoft.Management.Infrastructure;...CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem");

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

下表列出本節所涵蓋的主題。

主題 描述
連線到遠端電腦上的 WMI 描述客戶端在遠端電腦上使用 WMI 基礎結構時所發生的許多問題。
腳本和應用程式的 WMI 任務 顯示範例 WMI 用戶端程式代碼。
建立 WMI 應用程式或腳本 提供建立各種 WMI 用戶端的相關信息。
監視性能數據 描述如何使用 WMI 來監視效能數據。
接收 WMI 事件 描述如何檢視 WMI 事件。
監視事件 描述如何監視 WMI 事件。
使用 WQL 進行查詢 介紹 WMI 查詢語言 (WQL)。
查詢選擇性功能的狀態 在 Windows 7 中,WMI 實作 Win32_OptionalFeature 類別。 這個類別會擷取計算機上存在的選擇性功能狀態。
描述 WMI 物件的位置 著重於描述 WMI 受控實體位置的語法。
使用 WMI 存取其他作業系統功能 描述如何撰寫可存取設備驅動器、Active Directory 和 SNMP 裝置的 WMI 用戶端。
存取 Interop 命名空間中的數據 關聯提供者可讓 Windows Management Instrumentation (WMI) 用戶端周遊和擷取來自不同命名空間的配置檔和相關聯的類別實例。
操作類別和實例資訊 描述 WMI 用戶端必須執行的一般工作。
將類別連結在一起 討論檢視提供者,以及如何將來自多個 WMI 類別的資訊結合在一起。
修改系統登錄 描述 WMI 用戶端如何使用 WMI 來管理系統登錄資訊。