Using WMI

You can use WMI from client applications and scripts. It provides an infrastructure that makes it easy to both discover and perform management tasks. In addition, you can add to the set of possible management tasks by creating your own WMI providers.

The following topics are discussed in this section:

Obtaining Data from WMI

The following procedure describes how to obtain data from WMI by writing a script or application.

Aa393964.wedge(en-us,VS.85).gifTo obtain data from WMI by writing a script or application

  1. Decide which language to use. For more information about scripting, see Creating a WMI Script. For more information about C++, see Creating a WMI Application Using C++. For using more information about C# or WMI .NET, see WMI .NET Overview.

    You can view or manipulate WMI data in many languages. The following table lists the topics that describe how to use the scripting and application languages to obtain data.

    Application languageTopic
    Scripts written in Microsoft ActiveX script hosting, including Visual Basic Scripting Edition (VBScript), Microsoft JScript, and PerlScripting API for WMI.

    Start with Creating a WMI Script.

    For script code examples, see WMI Tasks for Scripts and Applications and the TechNet ScriptCenter Script Repository.

    Visual Basic applicationsScripting API for WMI.
    Active Server PagesScripting API for WMI.

    Start with Creating Active Server Pages for WMI.

    C++ applicationsCOM API for WMI.

    Start with Creating a WMI Application Using C++ and WMI C++ Application Examples (contains examples).

    .NET Framework applications written in C#, Visual Basic .NET, or J#Classes in the System.Management namespace. For more information, see WMI .NET Overview.

     

  2. Ensure that your connections to remote computers work.

    For more information, see Connecting to WMI on a Remote Computer.

  3. Connecting to WMI on remote computers requires the correct security settings, as explained in Maintaining WMI Security. The following table lists the topics that describe how to configure security settings with the scripting and application languages.
    LanguageTopic
    Scripts in any language, Visual Basic applicationsSetting the Default Process Security Level Using VBScript
    Active Server PagesConfiguring IIS 5 and Later for WMI ASP Scripting
    C++Setting the Default Process Security Level Using C++ and Setting the Security on IWbemServices and Other Proxies

     

  4. After connecting to WMI, you can obtain data through queries and enumerations.

    For more information, see Manipulating Class and Instance Information and Querying with WQL.

  5. Registry data is available through WMI and you can create new keys and values or modify existing ones.

    For more information, see Modifying the System Registry.

  6. You can subscribe to event notifications through WMI, either temporarily between system reboots or permanently.

    For more information, see Monitoring Events and Receiving a WMI Event.

  7. Performance counter data for a system is available through WMI.

    The system performance library counters are converted to WMI classes. For more information, see Monitoring Performance Data.

  8. WMI Tasks for Scripts and Applications describes how to do many administrative tasks with WMI.

Providing Data to WMI

The following procedure describes how to supply data to WMI by writing a provider.

Aa393964.wedge(en-us,VS.85).gifTo supply data to WMI by writing a provider

  • Decide on the type of provider to write.

    You cannot write a WMI provider in script or Visual Basic. However, you can take several other approaches to writing a WMI COM provider:

    • Using the WMI ATL Wizard in Visual Studio.

      This approach creates an unmanaged COM provider. For more information, see Adding a WMI Instance Provider and Adding a WMI Event Provider.

    • Using COM directly in any integrated development environment.

      This approach creates an unmanaged COM provider.

    • Using WMI in the .NET Framework to create a managed code provider.

      This approach creates a managed code provider. Managed code providers can be written in any .NET Framework language, are simpler to write than WMI COM providers, and can obtain data from the WMI CIM-based classes such as Win32 Classes. However, the .NET Framework WMI provider has some limitations. For more information, see Managing Applications Using WMI.

    • Using the provider framework classes is not recommended.

      The provider framework has been superseded by the WMI ATL wizards, using COM directly, or .NET Framework providers. Creating a WMI COM provider with the provider framework classes is no longer recommended. The following table lists the topics that describe how to use COM or .NET Framework providers.

    ProviderTopic
    COM provider in the same process as WMIProviding Data to WMI
    COM decoupled providerIncorporating a Provider in an Application
    .NET Framework provider in C# or Visual Basic.NETManaging Applications Using WMI

     

Important Tasks for WMI

The following topics provide information about using WMI to monitor and control enterprise components.

TopicDescription
WMI Tasks for Scripts and ApplicationsDescribes how to find the correct WMI class and procedures to use in scripts and applications that perform common computer and network administration tasks, such as adding a new printer connection for a remote computer or finding all the installed hotfixes on a computer.
Creating a WMI Application or Script Any scripting language, such as VBScript, JScript, or Perl, that works with ActiveX objects can access WMI data. Applications can access WMI in C++, using the COM API for WMI or in Visual Basic, using the Wbemdisp.tlb type library and the Scripting API for WMI.
Connecting to WMI on a Remote ComputerDescribes how scripts, applications, and providers can establish connections to WMI on remote computers to obtain data or control hardware and software.
Monitoring EventsDescribes how to get event notifications by creating temporary or permanent WMI event consumers.
Providing Data to WMIWMI supplies dynamic management data to client scripts and applications by obtaining it from providers.
Getting and Providing Data on a 64-bit ComputerDescribes how to access nondefault providers and considerations for provider writers on 64-bit systems.

 

Send comments about this topic to Microsoft

Build date: 11/3/2009

Tags :


Community Content

Pablo_Marambio
You can also use WMI from Powershell
It is important to note that this technology can also be used from Windows Powershell, the natural replacement for WSH. If you haven't used it yet, give it a try: it's fantastic!
Tags : powershell

Page view tracker