Windows Management Instrumentation

Purpose

Windows Management Instrumentation (WMI) is the infrastructure for management data and operations on Windows-based operating systems. You can write WMI scripts or applications to automate administrative tasks on remote computers, but WMI also supplies management data to other parts of the operating system and products—for example, System Center Operations Manager (formerly Microsoft Operations Manager (MOM)), or Windows Remote Management (WinRM).

Note

This documentation is for developers and IT administrators. If you're an end-user who has experienced an error message concerning WMI, then you should go to Microsoft Support, and search for the error code that you see in the error message. For more information about troubleshooting problems with WMI scripts and the WMI service, see WMI isn't working!

Note

WMI is fully supported by Microsoft. However, the latest version of administrative scripting and control is available through the Windows Management Infrastructure (MI). MI is fully compatible with previous versions of WMI, and it provides a host of features and benefits that make designing and developing providers and clients easier than ever. For more information, see Windows Management Infrastructure (MI).

Where is WMI applicable?

WMI can be used in all Windows-based applications, and is most useful in enterprise applications and administrative scripts.

System administrators can find information about using WMI in various books about WMI. For more information, see Further information.

Developer audience

WMI is designed for programmers who use C/C++, the Microsoft Visual Basic application, or a scripting language that has an engine on Windows and handles Microsoft ActiveX objects. While some familiarity with COM programming is helpful, C++ developers who are writing applications can find good examples for getting started at Creating a WMI application using C++.

To develop managed code providers or applications in C# or Visual Basic .NET using the .NET Framework, see WMI in .NET Framework.

Many administrators and IT professionals access WMI through PowerShell. The Get-WMI cmdlet for PowerShell enables you to retrieve information for a local or remote WMI repository. As such, a number of topics and classes, especially in the Creating WMI clients section, contain PowerShell examples. For additional information on using PowerShell, see Windows PowerShell.

Run-time requirements

For more information about which operating system is required to use a specific API element or WMI class, see the Requirements section of each topic in the WMI documentation.

If an expected component appears to be missing, see Operating System availability of WMI components.

You don't need to download or install a specific software development (SDK) in order to create scripts or applications for WMI. However, there are some WMI administrative tools that developers find useful. For more information, see the Downloads section in Further information.

In this section

Topic Description
About WMI General information about WMI.
Using WMI Information about how to develop applications to use WMI, which includes information about tools.
WMI reference Documentation about the WMI classes, WMI C++ classes, WMI COM API, scripting API, and other WMI reference material.
WMI glossary Windows Management Instrumentation (WMI) uses its own collection of terms. Many of these terms are familiar to developers, but have new or altered definitions in the WMI environment.