共用方式為


使用 WMI

您可以從用戶端應用程式和文稿使用 WMI。 其提供基礎結構,可讓您輕鬆地探索及執行管理工作。 此外,您可以藉由建立自己的 WMI 提供者,將 新增至一組可能的管理工作。

注意

用於撰寫應用程式和腳本的下一代 WMI 版本可透過 Windows 管理基礎結構 (MI) 取得。 如需詳細資訊,請參閱 MI提供者和用戶端

本節將討論下列主題:

從 WMI 取得數據

下列程式描述如何藉由撰寫腳本或應用程式,從 WMI 取得數據。

若要透過撰寫文本或應用程式從WMI取得數據

  1. 決定要使用的語言。 如需腳本的詳細資訊,請參閱 建立 WMI 腳本。 如需C++的詳細資訊,請參閱 使用 C++ 建立 WMI 應用程式。 如需使用 C# 或 WMI .NET 的詳細資訊,請參閱 WMI .NET 概觀

    您可以檢視或操作多種語言的 WMI 數據。 下表列出描述如何使用文稿和應用程式語言來取得數據的主題。

應用程式語言 主題
Microsoft ActiveX 腳本裝載中撰寫的腳本,包括 Visual Basic Scripting Edition (VBScript) 和 Perl
WMI 的腳本 API。
從建立 WMI 腳本開始。
如需腳本程式代碼範例,請參閱 腳本和應用程式的 WMI 工作和 TechNet ScriptCenter 腳本存放庫。
Windows PowerShell
開始使用 Windows PowerShell
WMI PowerShell Cmdlet,例如 Get-WmiObject
Visual Basic 應用程式
WMI 的腳本 API。
使用中伺服器頁面
WMI 的腳本 API。
建立 WMI 的作用中伺服器頁面開始。
C++ 應用程式
適用於 WMI 的 COM API。
從使用 C++ 和 WMI 建立 WMI 應用程式開始,C++應用程式範例(包含範例)。
以 C#、Visual Basic .NET 或 J 撰寫的 .NET Framework 應用程式#
Microsoft.Management.Infrastructure 命名空間中的類別。
注意:System.Management 是涵蓋 WMI Managed 程式代碼的原始命名空間。 不過,System.Management 的基礎技術通常比 Microsoft.Management.Infrastructure 還要慢,而且不會調整。 因此,不建議您將 System.Management 用於新專案。 (如需詳細資訊 System.Management,請參閱 WMI .NET 概觀。)
  1. 請確定您與遠端電腦的連線正常運作。

    如需詳細資訊,請參閱 連線到遠端電腦上的 WMI。

  2. 聯機到遠端電腦上的 WMI 需要正確的安全性設定,如維護 WMI 安全性中所述。 下表列出描述如何使用文本和應用程式語言設定安全性設定的主題。

    語言 主題
    任何語言的腳本,Visual Basic 應用程式
    使用 VBScript 設定預設進程安全性層級
    使用中伺服器頁面
    設定 WMI ASP 文稿的 IIS 5 和更新版本
    C++
    使用 C++ 設定預設行程安全性層級,並在 IWbemServices 和其他 Proxy 上設定安全性
  3. 連線到 WMI 之後,您可以透過查詢和列舉取得數據。

    如需詳細資訊,請參閱使用 WQL 操作類別和實例資訊和查詢。

  4. 登錄數據可透過 WMI 取得,您可以建立新的機碼和值,或修改現有的機碼和值。

    如需詳細資訊,請參閱 修改系統登錄

  5. 您可以透過 WMI 訂閱事件通知,在系統重新啟動或永久之間暫時訂閱。

    如需詳細資訊,請參閱 監視事件接收 WMI 事件

  6. 系統的性能計數器數據可透過WMI取得。

    系統性能連結庫計數器會轉換成 WMI 類別。 如需詳細資訊,請參閱 監視效能數據

  7. 腳本和應用程式的 WMI 工作說明如何使用 WMI 執行許多系統管理工作。

將數據提供給 WMI

下列程式描述如何藉由撰寫提供者將數據提供給 WMI。

若要藉由寫入提供者將數據提供給 WMI

  • 決定要寫入的提供者類型。

    您無法在 VBScript 中撰寫 WMI 提供者。 不過,您可以採取數種其他方法來撰寫 WMI COM 提供者:

    • 在 Visual Studio 中使用 WMI ATL 精靈。

      此方法會建立 Unmanaged COM 提供者。 如需詳細資訊,請參閱 新增 WMI 實例提供者新增 WMI 事件提供者

    • 直接在任何集成開發環境中使用 COM。

      此方法會建立 Unmanaged COM 提供者。

    • 在 .NET Framework 中使用 WMI 來建立 Managed 程式代碼提供者。

      此方法會建立Managed程式碼提供者。 Managed 程式代碼提供者可以使用任何 .NET Framework 語言撰寫、比 WMI COM 提供者更容易撰寫,而且可以從WMI CIM 型類別取得數據,例如 Win32 類別。 不過,.NET Framework WMI 提供者有一些限制。 如需詳細資訊,請參閱 使用WMI管理應用程式。

    • 不建議使用提供者架構類別

      WMI ATL 精靈已使用 COM 直接或 .NET Framework 提供者取代提供者架構。 不再建議使用提供者架構類別建立 WMI COM 提供者。 下表列出描述如何使用 COM 或 .NET Framework 提供者的主題。

    提供者 主題
    COM 提供者在與 WMI 相同的進程中
    將數據提供給 WMI
    COM 分離提供者
    在應用程式中納入提供者
    C# 或 Visual Basic.NET 中的 .NET Framework 提供者
    使用 WMI 管理應用程式

WMI 的重要工作

下列主題提供使用 WMI 監視及控制企業元件的相關信息。

主題 說明
腳本和應用程式的 WMI 工作
描述如何尋找正確的 WMI 類別和程式,以用於執行常見電腦和網路管理工作的腳本和應用程式,例如為遠端電腦新增印表機連線,或尋找電腦上所有已安裝的 Hotfix。
建立 WMI 應用程式或文稿
任何與 ActiveX 物件搭配運作的腳本語言,例如 VBScript 或 Perl,都可以存取 WMI 數據。 應用程式可以使用適用於 WMI 的 COM API 或 Visual Basic,使用 Wbemdisp.tlb類型連結庫WMI 的腳本 API,在 C++ 中存取 WMI
線上到遠端電腦上的 WMI
描述文本、應用程式和提供者如何在遠端電腦上建立 WMI 的連線,以取得數據或控制硬體和軟體。
使用 Windows PowerShell 連線到遠端電腦上的 WMI
描述如何使用 Windows PowerShell 在遠端電腦上建立 WMI 的連線,以取得數據或控制硬體和軟體。
監視事件
描述如何藉由建立暫時或永久 WMI 事件取用者來取得事件通知。
將數據提供給 WMI
WMI 會從提供者取得動態管理數據給用戶端腳本和應用程式。
在 64 位電腦上取得和提供數據
描述如何存取 64 位系統上提供者寫入器的非預設提供者和考慮。