[This is preliminary documentation and subject to change]
Windows Management Instrumentation (WMI) is technology for administrators to manage Windows features. The IIS WMI provider exposes a set of programming interfaces that offer powerful and flexible ways to administer your Web sites. The IIS WMI provider is superior to ADSI for managing configuration of the metabase.
Windows Whistler management tools and scripts can use WMI to manage systems composed of numerous devices, resources, and applications. With WMI technology, these systems and components are represented using the Common Information Model (CIM). CIM can model anything in the managed environment regardless of data-source location by providing a consistent and unified view of logical and physical objects. Managed objects are represented using object-oriented constructs, such as classes. These classes include properties that describe data and methods. WMI offers a powerful set of services that include manipulating managed objects, retrieving query-based information, and notification of events.
WMI is designed to offer the following advantages over other available management technologies, including ADSI:
Access to these services and to the management data is made possible with a single (COM) programming interface. WMI providers expose instances of objects to the WMI COM interface.
For managing IIS with WMI, the managed object is the metabase, and the IIS WMI Provider is an object management tool that manages the metabase. The IIS WMI provider returns instances of IIS configuration classes (the metabase schema) and properties to WMI. The IIS WMI provider is designed to provide functionality greater than the IIS ADSI provider for metabase configuration and IIS management tasks. The IIS WMI provider accesses the queries and manages the IIS metabase as follows:
Figure 1. [Image illustrating the above sequence goes here.]
The WMI provider reads the metabase as a database of records, where each record is represented as an instance of a class. Each instance can then be queried to determine content, state, associations, and properties. WMI provider establishes relationships between objects, allowing you to tie together the various objects and all the objects contained within them. Management tasks can then be performed using an instance of the class, or many instances.
The IIS WMI schema is congruent with the IIS ADSI Admin Objects schema. The two technologies differ in architecture and features.
The following table compares the architecture and features of the IIS ADSI provider with those of the IIS WMI provider.
| Issue | IIS ADSI provider | IIS WMI provider |
| Query capabilities? | No. | Yes. By querying on keytypes, WMI provider returns only the data you need. |
| Object model and access routes | COM. Scripts and programs. | COM. Scripts, programs, and UI tools, such as the WMI Object Browser. |
| Extensible schema? | Yes. | No. WMI provider can return existing schema extensions, but cannot extend the metabase schema. |
| Association or containment of related data | Properties are related to metabase keys by containment.
You can use the ADSI container object methods of the IIS Admin Objects to manipulate keys in the metabase. You can create, delete, and move keys by creating, deleting, and moving IIS Admin Objects within container objects. You can also enumerate contained objects such as virtual directories or servers with container object methods. Supports property inheritance. | Association. In conjunction with other providers, includes
associations with managed objects not in the metabase.
An association in WMI describes a relationship between classes and is in itself defined by a class. This powerful concept allows management information about an entire system of associated components to be viewed and traversed for tasks such as troubleshooting. Navigating associations to other classes is not limited by containment. |
Complete WMI documentation, titled "WMI Reference," is available from MSDN. To get and use the WMI Object Browser, download and install the WMI SDK from MSDN.