IIS WMI Provider Architecture
The WMI provider, like the ADSI provider, provides a standard syntax for accessing IIS configuration data through the use of the IIS admin objects.
IIS 5.1 and earlier: The IIS WMI provider is not available.
Note
There has been a change in the IIS WMI provider for Windows Server 2003 Service Pack 1 and Windows XP Service Pack 2 that requires customers to update WMI-based scripts that operate over a remote connection. WMI-based scripts that do not encrypt the connection when administering IIS remotely fail with an Access Denied error (WBEM_E_ACCESS_DENIED, 0x80041003). You must use the AuthenticationLevel property.
For information on how to configure encryption in WMI-based scripts, see Encrypting Data When Running WMI-Based Remote Administration Scripts in the IIS Administration Guide.
The following illustration shows the organization of classes in the IIS WMI provider. Each class type is defined in the sections that follow the diagram.
Element Classes and Settings Classes
The classes that are defined in the MicrosoftIISv2 namespace correspond to the IIS metabase schema. For each IIS admin object, there are two classes:
The CIM_ManagedSystemElement class
Each admin object has an element class that is a subclass of CIM_ManagedSystemElement. Element classes contain the methods and read-only properties for an IIS admin object. For example, IIsWebServer is an element class for an instance of an IIS Web server. IIsWebServer contains methods such as CreateNewSite, and read-only properties such as AppRoot.
The CIM_Setting (WMI) class
Each admin object has a settings class that is a subclass of CIM_Setting (WMI). Settings classes contain the writable properties for an IIS admin object. For example, IIsWebServerSetting is a settings class for an instance of an IIS Web server. IIsWebServerSetting contains writable properties such as AspScriptLanguage.
The IIS admin objects were split in this way to take advantage of the inheritance of special properties and methods from the CIM_ManagedSystemElement class.
Association Classes
There are two association classes in the IIS WMI provider:
The CIM_Component association class
This association class exposes relationships between element classes to mimic ADSI containment. The properties of CIM_Component association classes are references to the two associated element classes. Every possible association between element classes in the CIM_ManagedSystemElement class is represented by an element in the CIM_Component class.
The CIM_ElementSetting association class
This association class exposes relationships between element classes and settings classes. The properties of CIM_ElementSetting association classes are references to the associated element and settings class. Every possible association between elements in the CIM_ManagedSystemElement class and elements in the CIM_Setting (WMI) class is represented by an element in the CIM_ElementSetting class.
Structured Data Class
The IIsStructuredDataClass class contains elements that represent metabase properties that contain data in a multipart format. For example, in the ADSI provider, the ServerBindings property is a multiple string where each string must be formatted as IP:Port:Hostname. If the parts are out of order, or if there are missing colons, an error occurs.
In the WMI provider, an element class was created called ServerBinding, which has three properties that correspond to the IP address, the port number, and the host name. An instance of a class such as the IIsWebServerSetting settings class can contain a property called ServerBindings, which is an array of ServerBinding objects.
Inherited Properties and Methods
IIS WMI provider objects inherit methods from the IWbemClassObject COM interface and the SWbemObject scripting object. These inherited methods manipulate the data in the metabase. The following table lists frequently used inherited methods and properties.
IWbemClassObject methods |
IWbemClassObject properties |
---|---|
BeginEnumeration Delete EndEnumeration Get Next Put SpawnInstance |
None. |
SWbemObject methods |
SWbemObject properties |
---|---|
Associators_ Delete_ Put_ SpawnInstance_ |
Path_ Properties_ |