Ask Learn
Preview
Please sign in to use this experience.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Corporation
September 1998
Summary: This paper presents an overview of the Microsoft Windows Management Instrumentation (WMI) technology, an implementation of the Desktop Management Force's (DMTF) Web-Based Enterprise Management (WBEM) initiative, and concentrates on WMI's support for Simple Network Management Protocol (SNMP). This information is intended for developers who are interested in creating SNMP applications that need to integrate with WMI. (10 printed pages)
The Microsoft® Windows® Management Instrumentation (WMI) technology is an implementation of the DMTF WBEM initiative for Microsoft Windows platforms that extends the DMTF Common Information Model (CIM) to represent management objects in Windows management environments. The CIM is an extensible data model for logically organizing management objects in a consistent and unified manner in a managed environment.
WBEM is an industry-wide DMTF initiative and technology that aims to provide a uniform, standardized way to access management information in an enterprise environment. WBEM enables the development of tools and technologies that reduce the complexity and costs of enterprise management. It is based on CIM, also a DMTF standard. By providing such standards, WBEM contributes to the industry-wide efforts to lower total cost of ownership (TCO). TCO refers to the administrative costs associated with computer hardware and software purchases, deployment and configuration, hardware and software updates, training, maintenance, and technical support.
The WBEM initiative results from the cooperative efforts of BMC Software Inc., Cisco Systems Inc., Compaq Computer Corp., Intel Corp., and Microsoft Corp., as well as many other companies active in the DMTF.
WBEM complements and extends existing management protocols and instrumentation such as SNMP, Desktop Management Interface (DMI), and Common Management Information Protocol (CMIP). It does so by providing a point of integration through which data from all of these sources can be accessed.
This paper presents brief overviews of Windows Management Instrumentation technology and Simple Network Management Protocol, and focuses on the SNMP supporting functionality in WMI. It is intended for SNMP application developers interested in understanding how SNMP integrates with WMI.
The Windows Management Instrumentation technology is a management infrastructure that supports the syntax of CIM, the Managed Object Format (MOF), and a common programming interface. The MOF is used to define the structure and contents of the CIM schema in human- and machine-readable form. Windows Management Instrumentation offers a powerful set of services, including query-based information retrieval and event notification. These services and the management data are accessed through a Component Object Model (COM) programming interface. Additionally, support for scripting is provided in the WMI scripting interface.
The goals of the WMI technology are to provide:
The WMI technology architecture consists of the following:
The management infrastructure consists of the CIM Object Manager and the CIM Object Repository. Applications depend on the Object Manager to handle the interface between management applications and data Providers. The CIM Object Manager facilitates these communications by providing a common programming interface, using COM, to Windows Management Instrumentation. This COM API supplies event notification and query processing services, and is available in several programming languages such as C and C++. Windows Management Instrumentation also supports automation scripting in VBScript, JScript, and Perl, as well as other Windows-supported scripting languages. The CIM Object Repository holds the CIM and extension schemas, and data information or data source details. CIM Object Manager uses the schema data in this repository when servicing requests from management applications for managed objects.
Managed objects are either physical or logical enterprise components that are modeled using CIM. For example, a managed object can be hardware, such as a cable, or software, such as a database application. Management applications can access managed objects through CIM Object Manager.
Management applications are applications or Windows 2000 services that use or process information originating from managed objects. Management applications can access managed object information by making a request to CIM Object Manager through one of the methods in the WMI API.
Using WMI technology, you can create management applications that implement numerous features, such as displaying system information, generating an inventory of information on specific network elements, and processing and responding to events. WMI supports various strategies to create management applications. For example, applications can use the WMI API to access CIM Object Manager directly or they can access CIM Object Manager indirectly by using one of the following methods:
WMI Providers are standard COM and Distributed Component Object Model (DCOM) servers that function as mediators between managed objects and CIM Object Manager. If the CIM Object Manager receives a request from a management application for data that is not available from the CIM object repository, or for event notifications that are not supported by CIM Object Manager, it forwards the request to a WMI Provider. Providers supply data and event notifications for managed objects that are specific to their particular domain.
The WMI Software Development Kit (previously called the WBEM SDK) includes several built-in Providers. These built-in Providers (or standard providers) supply data from sources such as the system registry. The built-in Providers include:
The WMI technology also provides support for third party-created custom Providers. Custom Providers can be used to service requests related to managed objects that are environment-specific. Providers typically use the MOF language to define and create classes. Providers use the WMI API to access the CIM object repository, and to respond to CIMOM requests made initially by applications.
The next section presents a brief overview of SNMP.
Simple Network Management Protocol (SNMP) is a network management standard that defines a strategy for managing TCP/IP and, more recently, Internet Packet Exchange (IPX) networks.
SNMP uses a distributed architecture that includes:
To communicate host information, management systems and agents use SNMP messages. These messages are sent using the User Datagram Protocol (UDP) and are routed between the management system and host by using the Internet Protocol (IP).
A Management Information Base contains the information requested by the management system. The MIB for a networked computer may include information on the configuration and performance of the network interface card, the available hard drive space, the version of drivers and applications, and so on.
When a management system requests information, the following sequence occurs:
The following SNMP message types are used:
SNMP events (or traps) are sent unsolicited to a management station that filters the events; therefore, network traffic is involved. With WMI, the events are filtered locally and only those events passing the filter criteria are sent over the network, thus reducing the required bandwidth for events of interest.
The next sections highlight the WMI SDK SNMP supporting features.
To support SNMP, the WMI SDK provides the following components:
The following sections briefly discuss these components. Get detailed information on the WMI SDK.
The SNMP Providers return dynamic information. You can specify the set of classes that the instance Provider will operate against in one of two ways:
Additionally, you can also specify whether or not to use correlation for the set of classes returned from the SMIR namespace. Correlated classes define the set of classes that a given SNMP agent is known to support at the time the enumeration occurs. Noncorrelated enumeration returns all classes present within the SMIR namespace, regardless of whether the agent device supports them or not.
The SNMP Providers include:
The SNMP Providers map device data to CIM classes by:
Enumerating SNMP Class Definitions. To enumerate a set of class definitions, applications can call IWbemServices::CreateClassEnum or IWbemServices::CreateClassEnumAsync.
MIB objects are mapped to SNMP CIM classes using the OBJECT-TYPE macro; events are mapped to classes using the TRAP-TYPE and NOTIFICATION-TYPE macros.
The OBJECT-TYPE macro is used to describe the basic characteristics of a MIB object. The SNMPv1 TRAP-TYPE and SNMPv2C NOTIFICATION-TYPE macros describe the characteristics of an SNMP event.
Instantiating SNMP Class Definitions. To instantiate a class definition, applications can call IWbemServices::GetObject or IWbemServices::GetObjectAsync.
Enumerating SNMP Class Instances. The SNMP instance Provider services requests to enumerate instances associated with classes that represent device MIBs.
Instantiating SNMP Class Instances. The SNMP instance Provider processes requests to instantiate instances of classes that represent MIB objects.
Retrieving SNMP Class Instances. To retrieve a particular instance of an SNMP CIM class, applications can call IWbemServices::GetObject or IWbemServices::GetObjectAsync.
The schema that SNMP uses to define objects differs from that used in the WMI Common Information Model. The SNMPv1 and SNMPv2 schema is called the Structure of Management Information (SMI); it is packaged as MIB files. To define objects, the MIB files use Abstract Syntax Notation 1 (ASN.1), a standard language, and macro definitions that are used as templates for describing the objects. These macros supply information about the object, including its name, identifier, syntax, description, access rights, and so on.
The WMI SNMP Providers convert these MIB macros:
The SNMP class Provider enumerates and instantiates a set of class definitions against a CIM namespace. It does so by using an MIB correlator and the SNMP Module Information Repository, an SNMP schema database. The SNMP class Provider supports correlated and noncorrelated modes. You designate one of these modes by setting a context value (IWbemContext) correlate of type Boolean and passing this into the IWbemServices method. The SNMP class provider supports both enumeration of class definitions and retrieval of a class definition.
The SNMP instance provider maps SNMP MIB objects to class instances.
To define a view of a network device, an SNMP namespace is used. You can create an SNMP namespace by using the WMI SDK's WMI CIM Studio application, compiling a MOF file, or programmatically with the WMI API.
The Namespace system class is used to represent an SNMP namespace. To generate a new namespace, you create an instance of this class. You must associate at least one descriptor (or qualifier) with the class instance. The qualifiers contain implementation-specific context information and transport properties that define how the SNMP Providers access an SNMP agent.
SNMP devices are represented within WMI by using a proxy namespace that contains a set of instance qualifiers. These qualifiers describe the transport characteristics pertaining to the device. WMI uses a MOF file, snmpreg.mof, to create the \\.\root\snmp\localhost namespace—this is a standard namespace that represents the local SNMP agent. For additional details, refer to the WMI SDK.
The SNMP information module compiler is used to compile native SNMP management information that is defined in an MIB into an equivalent CIM schema definition that can be used with the SNMP Providers. The CIM schema can exist as output in an MOF file or it can be loaded into an SNMP schema database (the SNMP Module Information Repository or SMIR). The SNMP dynamic class Provider uses the SNMP Module Information Repository to create and retrieve instances of class definitions.
The SNMP information module compiler runs in command-line mode as an executable file, using one SNMP information module as input, and any additional files that might be needed to resolve external references. SNMP information modules are collections of management information that typically consist of a combination of MIB modules and AGENT-CAPABILITIES and MODULE-COMPLIANCE statements. AGENT-CAPABILITIES statements describe an agent's compliance to the set of MIB modules it supports. MODULE-COMPLIANCE statements describe an agent's capabilities regarding object definitions.
The SNMP information module compiler also provides the following functionality:
The WMI SDK SNMP-supporting components provide the following advantages:
For the latest information on Windows 2000 Server, check out our World Wide Web site at www.microsoft.com/ntserver/ and the Windows NT Server Forum on the Microsoft Network (GO WORD: MSNTS).
For more information on the WBEM initiative, check https://www.dmtf.org/.
More information on Windows Script Host is available at https://msdn.microsoft.com/library/en-us/script56/html/wsoriWindowsScriptHost.asp.
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This article is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
Please sign in to use this experience.
Sign in