使用 WMI

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

注意

新一代 WMI 版本可用來撰寫應用程式和腳本,可透過 Windows Management Infrastructure (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
Active Server Page
WMI 的腳本 API
建立 WMI 的作用中伺服器頁面開始。
C++ 應用程式
適用于 WMI 的 COM API
使用 C++ 和 WMI C++ 應用程式範例建立 WMI 應用程式開始, (包含範例) 。
.NET Framework以 C#、Visual Basic .NET 或 J 撰寫的應用程式#
Microsoft.Management.Infrastructure命名空間中的類別。
注意:System.Management 是涵蓋 WMI Managed 程式碼的原始命名空間。 不過, System.Management 的基礎技術通常比 Microsoft.Management.Infrastructure還慢,而且不會調整。 因此,不建議您將 System.Management 用於新專案。 (如需 System.Management的詳細資訊,請參閱 WMI .NET Overview.)
  1. 確定遠端電腦的連線正常運作。

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

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

    Language 主題
    任何語言的腳本 Visual Basic 應用程式
    使用 VBScript 設定預設進程安全性層級
    Active Server Page
    設定 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提供者的主題。

    提供者 主題
    與 WMI 相同的進程中的 COM 提供者
    將資料提供給 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 位系統上提供者寫入器的非預設提供者和考慮。