Building Management Components for Microsoft Exchange 2000 Server

Barry Steinglass
Microsoft Corporation

January 2000

Summary: This article discusses building system management software for Microsoft Exchange 2000 Server. (29 printed pages)

Contents

Overview
Windows Management Instrumentation
CDO for Exchange Management
Microsoft Management Console
Other Useful Information
Appendix A: Directory Structure of the Exchange Subtree
Appendix B: Exchange 2000 WMI Provider Classes
Appendix C: Exchange 2000 Node Types and Clipboard Formats

Overview

This article is intended to assist independent software vendors (ISVs), solution providers, and IT developers in developing system management software for Microsoft® Exchange 2000 Server. It provides in a single document all the important information relevant to this task. Information is included on Windows Management Instrumentation (WMI), Collaboration Data Objects (CDO) for Exchange Management, the Microsoft Management Console (MMC), and many of the technical details that developers may need to successfully develop software. In some cases, this article simply points to other resources, rather than providing information that is redundant to those resources. It assumes that developers have a basic understanding of the concepts, framework, and behavior of Exchange 2000 Server and Windows® 2000.

Using WMI to Programmatically Monitor Your System

WMI is the Microsoft implementation of Web-Based Enterprise Management (WBEM). WBEM provides uniform access to management information. Such management information includes the state of system memory, inventories of currently installed client applications, and other information on client status. WMI technology enables systems, applications, networks, and other managed components to be represented by using the Common Information Model (CIM) designed by the Desktop Management Task Force (DMTF). CIM can model anything in the managed environment regardless of data source location.

Exchange 2000 Server supports WMI by including WMI providers that can be used to access status and other information about the Exchange system.

Using CDO for Exchange Management to Automate Administrative Tasks

The CDO model in Exchange version 5.5 provides a popular and feature-rich development platform but does not address the management of Exchange. In many cases, the same ISVs who develop applications that use CDO also develop management applications. ISVs and customers often require management capabilities in their collaborative applications and the reverse. To satisfy these requirements, Exchange 2000 provides a set of objects known as CDO for Exchange Management. This object layer opens Exchange administration and management to third-party developers.

CDO for Exchange Management abstracts the user interface layer from the underlying storage implementation and manipulation in Exchange 2000 Server. Using it, MMC snap-ins, Web-based administration tools, and Windows Scripting Host (WSH) based scripts can manage Exchange programmatically.

Using the MMC Snap-in Designer to Integrate with the Exchange 2000 Server User Interface

The User Interface (UI) for Exchange 2000 Server Management consists of a set of MMC snap-ins. This architecture allows for the extension of the UI through MMC extension snap-ins. It is now possible to create MMC extension snap-ins by using the Microsoft® Visual Basic® development system, version 6.0. The MMC Snap-in Designer for Visual Basic 6.0 allows you to access all the functionality that is available from C++, but with greatly reduced development time.

Other Useful Information

Developers interested in creating management solutions for Exchange 2000 Server should also be familiar with the technical details of the Message Tracking Center and the Internet Information Server (IIS) log files. These files can be used to obtain statistical information on the traffic in the Exchange system. The message-tracking logs can also be used to trace the delivery path of individual messages. Some developers will also be interested in the list of Exchange 2000 PerfMon counters, along with the list of Windows NT® Event Log entries written by Exchange 2000.

Windows Management Instrumentation

Windows Management Instrumentation (WMI) is the Microsoft implementation of Web-Based Enterprise Management (WBEM). WBEM provides uniform access to management information. Such management information includes information on the state of system memory, inventories of currently installed client applications, and other information on client status. WMI technology enables systems, applications, networks, and other managed components to be represented by using the Common Information Model (CIM) designed by the Desktop Management Task Force (DMTF). CIM can model anything in the managed environment regardless of data source location.

DMTF, WBEM, and CIM

To understand WMI, it helps to have some background on the organizations, technologies, and standards that are driving this new management system.

The DMTF is the industry organization that is leading the development, adoption, and unification of management standards and initiatives for desktop, enterprise, and Internet environments.

Web-Based Enterprise Management (WBEM) is the DMTF initiative based on a set of management- and Internet-standard technologies developed to unify the management of enterprise-computing environments. WMI is the Microsoft implementation of WBEM. WBEM provides the ability for the industry to deliver a well-integrated set of standard-based management tools leveraging emerging technologies such as CIM and XML.

CIM is a conceptual information model for describing management that is not bound to a particular implementation. CIM is implemented by using Microsoft’s Component Object Model (COM). CIM allows for the interchange of management information between management systems and applications. CIM is one of the underlying technologies that makes WMI possible and powerful.

For more information about the DMTF, WBEM, or CIM, visit the DMTF Web site at www.dmtf.org/.

WMI Architecture

The best resource for learning about WMI is the WMI SDK in the Platform SDK. After you review this SDK, you will be ready to learn about Exchange WMI providers.

Exchange WMI Providers

Exchange 2000 Server includes three WMI providers:

These providers contain five classes that can be used to obtain information about Exchange 2000 Server. The classes are:

These classes are located in the following namespace:

\\.\root\cimv2\Applications\Exchange

Details about each class are in Appendix B: Exchange 2000 WMI Provider Classes.

Other WMI Providers

The following table lists the WMI providers shipped with Windows 2000. Exchange 2000 Server uses some of these providers. Others may be useful to Exchange 2000 developers depending on their specific needs. More information about each provider can be found in the WMI SDK in the Platform SDK.

Table 1. WMI Providers shipped With Windows 2000

Provider Description
Event Log Provider Provides access to data and notifications of events from the Microsoft Windows NT/Windows 2000 Event Log.
Microsoft Windows Installer Provider Provides access to information about applications that are installed by using Microsoft Windows installer.
Performance Monitor Provider Provides access to data from the Windows NT/Windows 2000 Performance Monitor.
Registry Event Provider Sends an event whenever a change occurs to a key, a value, or an entire tree in the registry.
Registry Provider Provides access to data from the registry.
Security Provider Provides access to security settings that control ownership, auditing, and access rights to the NTFS file system.
SNMP Provider Provides access to data and events from SNMP devices.
WDM Provider Provides access to data and events from device drivers that conform to the WMI interface.
Win32 Provider Provides access to data from the Win32® application programming interface subsystem.

CDO for Exchange Management

The Collaboration Data Objects (CDO) model in Exchange 5.5 provides a popular and feature-rich development platform but does not address the management of Exchange. In many cases the same ISVs who develop applications that use CDO also develop management applications. ISVs and customers often require management capabilities in their collaborative applications and the reverse. To satisfy these requirements, Exchange 2000 Server provides a set of objects known as CDO for Exchange Management. This object layer opens Exchange administration and management to third-party developers.

CDO for Exchange Management abstracts the user interface layer from the underlying storage implementation and manipulation in Exchange 2000 Server. Using it, MMC snap-ins, Web-based administration tools and Windows Scripting Host (WSH) based scripts can manage Exchange programmatically.

Who Benefits from CDO for Exchange Management?

Systems Developers. Systems developers, using C++, Visual Basic, or a scripting language, can develop complex client/server applications for business-critical processes. Systems developers at large organizations may want to extend Exchange administration functionality to support their unique needs.

Application Developers. ISVs have the opportunity to deliver powerful shrink-wrapped management tools that complement the Exchange management suite. These tools can be Web-based, MMC-based, or stand-alone applications.

Systems Administrators. Systems administrators typically use scripts such as Perl, JScript® development software, or Visual Basic, Scripting Edition to build small, single-task tools to perform either troubleshooting or simple operations. A systems administrator using CDO for Exchange Management could, for example, build a tool to add a user or check the mail queues from a simple command line or Web page.

Interfaces, Objects, and Descriptions

CDO for Exchange Management provides two interfaces, ImailRecipient and ImailboxStore, that are aggregated by ADSUser, ADSGroup, and ADS objects that are contacts. These interfaces are also aggregated by CDO.Person. Through the use of these interfaces, administration of users, groups, and contacts is possible.

In addition, CDO for Exchange Management also provides five stand-alone COM objects:

Platform SDK Resources

Comprehensive documentation for CDO for Exchange Management is in the Platform SDK.

CDO Events and Message Interception

A powerful aspect of programming applications for the Web Store is the robust Web Store event-handling mechanisms. Among the possibilities are intercepting messages, validating Web-form data, creating workflow applications, and virus scanning—all by creating event sink objects to start your custom programming when the events to which the objects are bound fire.

There are two types of events:

Active Directory and ADSI

Exchange 2000 Server stores the majority of its configuration information in the Windows 2000 Active Directory. The Active Directory Schema is extended by Exchange to support the various objects that store the configuration of the Exchange organization. The subtree of the Active Directory that contains the Exchange configuration information is described in Appendix A: Directory Structure of the Exchange Subtree. Developers will find this appendix useful for finding specific Exchange configuration objects or viewing the structure of the Exchange subtree.

CDO for Exchange Management encapsulates many of the operations developers perform on objects in the Active Directory. However, the Active Directory Service Interface (ADSI) is an alternative interface that can be used to manipulate all objects in the Directory (not just Exchange objects). ADSI and CDO for Exchange Management can be used together to accomplish tasks that might involve other portions of the Active Directory, such as scripting the creation of Windows NT user accounts that are automatically Exchange-enabled. Information about ADSI is available from the Active Directory Service Interfaces Overview Web site, located at www.microsoft.com/windows2000/library/howitworks/activedirectory/adsilinks.asp. Information about Active Directory in general can be found at the Directory Services area of the Microsoft Windows 2000 Web site, located at www.microsoft.com/windows2000/guide/server/features/activedirectory.asp.

Microsoft Management Console

Microsoft Management Console (MMC) is the result of efforts to create better tools to administer the devices, operating systems, and applications found on PCs. In the past, administrators relied on various management tools that offered no integration and that presented inconsistent user interfaces. Moreover, there were no comprehensive and consistent interfaces to enable developers to build management tools that could integrate with a unified console. The primary capability of MMC is to support simplified administration through integration, delegation, task orientation, and overall interface simplification.

MMC is an ISV-extensible, common-console framework for management applications. MMC is part of Windows NT and runs on both Windows NT (version 4.0 and later) and Windows 9x operating systems. However, a particular MMC snap-in may be more restrictive in its supported platforms (for example, the Exchange snap-ins do not run on Windows 9x or Windows NT 4.0).

MMC itself does not provide any management behavior, but it offers a common environment for snap-ins, which will be written by both Microsoft and ISVs. Snap-ins supply actual management behavior. The MMC environment provides for seamless integration between snap-ins, even those provided by different vendors. Administrators create tools from various snap-ins, from various vendors. Administrators can then save the tools they have created for later use, or for sharing with other administrators.

Exchange 2000 Server provides MMC with a set of snap-ins known collectively as the Exchange System Manager. These snap-ins are extensible by ISV development, just like most other MMC snap-ins. This allows ISVs to integrate portions of their UI with the Exchange System Manager. In addition, Exchange 2000 extends the Active Directory Users & Computers snap-in to support Exchange-specific attributes on user objects.

The MMC Snap-in Designer for Visual Basic

It is now possible to create MMC snap-ins by using Visual Basic 6.0. The MMC Snap-in Designer for Visual Basic allows you to access all the functionality that is available from C++, but with greatly reduced development time. For more information about MMC and the Snap-in Designer, see the Microsoft Management Console Overview Web site, located at www.microsoft.com/windows2000/library/howitworks/management/mmcover.asp. The Snap-in Designer is also available for download in the Windows 2000 Platform SDK.

Extending Exchange 2000

There are two methods for extending the Active Directory Users & Computers snap-in or the System Manager snap-in. Developers can use MMC extension mechanisms, display specifiers, or both. The method you use depends on which snap-in you are extending. The DSM uses display specifiers and the ESM uses MMC extension mechanisms.

Using MMC Extension Mechanisms

To extend the Exchange 2000 ESM, developers must have information about the node-type GUIDs and clipboard formats present in the Exchange System Manager.

Each node-type GUID corresponds to a class of nodes in the Exchange System Manager tree. Developers must use these GUIDs when extending the nodes with new property pages, subnodes, and context-menu actions.

Clipboard formats are an integral part of the extension mechanism of the Exchange System Manager. When an extension snap-in is written for an existing MMC node type, that extension snap-in can request information from its parent snap-in through clipboard formats. For example, if the extension snap-in needed to know what the Distinguished Name (DN) of its parent snap-in was, it could obtain the DN through the clipboard format CF_EXCHANGE_ADMIN_DN.

For node-type GUIDs and Exchange clipboard formats, see Appendix C: Exchange 2000 Node Types and Clipboard Formats.

Using Display Specifiers

The Windows 2000 Active Directory allows a high degree of customer modification to meet specific business and organizational needs. For example, existing object classes can be modified by changing the set of contained attributes. New attributes can be created and, to some extent, existing attributes can be removed.

New object classes can be created, inheriting the characteristics of one or more existing classes, and new attributes can be added. These changes to the Active Directory are relatively easy to make. Consequently, the UI used to access these objects needs to be relatively easy to extend and customize.

A display specifier is a localized, extensible, UI definition for a class of objects. It is implemented as a collection of string attributes that store all the information needed to render the UI for a single object instance. This information currently includes property sheets, context-menu verbs, class icons, localized class and attribute names, and the UI for creating new instances of a class. The set of supported UI features can be extended over time by adding new attributes to the display specifier.

The display specifier supports the notion of application-specific UI features for a given class of object. For instance, one set of property pages for the NTDS “User” class can be associated with DS Administrators, while a different set of property pages can be associated with DS users.

For more information about Active Directory Display Specifiers, see “Microsoft Windows 2000 Active Directory Display Specifiers.”

Other Useful Information

ISVs interested in developing management solutions for Exchange 2000 Server should also be familiar with the technical details of the Message Tracking Center and the IIS log files. Some developers will also be interested in the list of Exchange 2000 PerfMon counters, along with the list of Windows NT Event Log entries written by Exchange 2000.

Message-Tracking Resources

The message-tracking log files for Exchange 2000 are different from the ones for Exchange 5.5. The following table lists and describes current log file formats.

Log File Format

In this table, “On?” indicates whether or not this field is logged when the default message-tracking configuration is in use. The only field in which this is not true is the subject field, for performance and security reasons. To enable logging of the message subjects, go to the property pages of the server in the ESM.

Table 2. Exchange 2000 Server message tracking log file format

Field # Field Name Format On? Description
1 Date MM-DD-YYYY T Date.
2 Time HH:MM:SS GMT T GMT time.
3 Client-IP XXX.XXX.XXX.XXX T IP of connecting “client.”
4 Client Host Name String T Hostname of connecting “client.”
5 Partner Name String T Name of the messaging service the message is being handed off to. In Exchange 2000, the service could be: SMTP, X400, MAPI, IMAP, POP3, STORE. This is essentially the same as Exchange 5.5, but there are more possibilities for this field.
6 Server Host Name String T Host name of server making log entry
7 Server IP XXX.XXX.XXX.XXX T IP of server making log entry.
8 Recipient Address String T Message recipient (SMTP or X.400 address).
9 Event ID Integer T Integer corresponding to the event ID of the action logged, that is, sent, received, deleted, retrieved, and so on. The complete list is below.
10 MSGID String T Message ID.
11 Priority Integer T -1,0,1 corresponding to low, normal, high.
12 Recipient Report Status Integer T A number representing the result of an attempt to deliver a report to the recipient.

Delivered = 0

Not delivered = 1

This is used only for reports (NDRs, DRs). On other events, it is blank.

13 Total Bytes NNNNNNN T Length of message in bytes.
14 Number Recipients Integer T Total number of recipients.
15 Origination Time Integer T Timestamp of when the message first entered the Exchange 2000 organization (either from an external gateway or through creation through a client).  Can be used in conjunction with field #2, the time of the log entry, to determine how long the message has been in the Exchange organization.
16 Encryption Integer T For the primary body part: 0 if no encryption, 1 if signed only, 2 if encrypted. This is per message, not per recipient.
17 Service Version String T Version of the service making the log entry.
18 Linked MSGID String T If there is a MSG ID from another service, it is given here to link the message across services.
19 Message Subject String, base64 encoded if Loc. F The subject of the message, truncated to 256 bytes.
20 Sender Address String T Primary address of the originating mailbox, if known. This could be SMTP, X.400, or DN, depending on transport.

Event IDs

The following table lists and describes the possible message events in Exchange 2000 and the corresponding topological representations. Keep in mind that some of these may not show up in a pure Exchange 2000 environment because some of these events are from Exchange 5.5. All new Exchange 2000 events are in the range 1019 to 1031.

Table 3. Exchange 2000 message events

Event No. Event Type Description
0 Message transfer in The MTA completed transfer of responsibility for a message from a gateway, X.400 link, or other MTA into the local MTA.
1 Probe transfer in The MTA completed transfer of responsibility for a probe from a gateway, X.400 link, or other MTA into the local MTA.
2 Report transfer in The MTA completed transfer of responsibility for a report from a gateway, X.400 link, or other MTA into the local MTA.
4 Message submission A message was submitted by a local e-mail client (usually through the Information Store/MDB).
5 Probe submission An X.400 probe was submitted by a local e-mail client (usually through the Information Store).
6 Probe transfer out The MTA completed transfer of responsibility for a probe from the local MTA to a gateway, X.400 link, or another MTA.
7 Message transfer out The MTA completed transfer of responsibility for a message from the local MTA to a gateway, X.400 link, or another MTA.
8 Report transfer out The MTA completed transfer of responsibility for a report from the local MTA to a gateway, X.400 link, or another MTA.
9 Message delivered The MTA completed delivery of a message to local recipients (usually through the Information Store).
10 Report delivered The MTA completed delivery of a receipt or NDR to local recipients (usually through the Information Store).
26 Distribution list expansion The MTA has expanded a distribution list to produce a new message that has recipients who are distribution list members.
28 Message redirected The MTA has redirected a message or probe to an alternate recipient because of incorrect configuration data for the original recipient, or failure to route the object or reassignment of data contained in the message.
29 Message rerouted The MTA has rerouted a message, report, or probe because of problems with next route X.400 link or MTA.
31 Downgrading The MTA has mapped a message, report, or probe into the 1984 X.400 protocol before transferring it to a remote 1984 MTA.
33 Report absorption The MTA has scheduled a report for deletion because the user did not request it. In X.400 protocol, NDRs are always routed back to the sending MTA even if the user did not request a report.
34 Report generation The MTA has created a delivery receipt or NDR.
43 Unroutable report discarded The MTA has discarded a report because the report cannot be routed to its destination.
50 Gateway deleted message The administrator deleted an X.400 message that was queued by the MTA for transfer to a gateway. No delivery report is generated.
51 Gateway deleted probe The administrator deleted an X.400 probe that was queued by the MTA for transfer to a gateway. No delivery report is generated.
52 Gateway deleted report The administrator deleted an X.400 report that was queued by the MTA for transfer to a gateway. No delivery report is generated.
1000 Local delivery The sender and recipient are on the same server.
1001 Backbone transfer in Mail was received from another Messaging Application Programming Interface (MAPI) system across a connector or gateway.
1002 Backbone transfer out Mail was sent to another MAPI system across a connector or gateway.
1003 Gateway transfer out The message was sent through a gateway.
1004 Gateway transfer in The message was received from a gateway.
1005 Gateway report transfer in A delivery receipt or NDR was received from a gateway.
1006 Gateway report transfer out A delivery receipt or NDR was sent through a gateway.
1007 Gateway report generation A gateway generated an NDR for a message.
1010 SMTP queued outbound Outbound mail was queued for delivery by the Internet Mail Service.
1011 SMTP transferred outbound Outbound mail was transferred to an Internet recipient.
1012 SMTP received inbound Inbound mail was received by the Internet Mail Service.
1013 SMTP transferred inbound Mail received by the Internet Mail Service was transferred to the Information Store.
1014 SMTP message rerouted An Internet message is being rerouted or forwarded to the proper location.
1015 SMTP report transferred in A delivery receipt or NDR was received by the Internet Mail Service.
1016 SMTP report transferred out A delivery receipt or NDR was sent to the Internet Mail Service.
1017 SMTP report generated A delivery receipt or NDR was created.
1018 SMTP report absorbed The receipt or NDR could not be delivered.
1019 SMTP submit message to AQ A new message is submitted to Advanced Queuing.
1020 SMTP begin outbound transfer A message is about to be sent over the wire by SMTP.
1021 SMTP bad mail The message was transferred to the badmail directory.
1022 SMTP AQ failure A fatal Advanced Queuing error occurred. Information about the failure is written to the Event Manager.
1023 SMTP local delivery A message was successfully delivered by a store drive (logged by Advanced Queue).
1024 SMTP submit message to cat Advanced Queuing submitted a message to the categorizer.
1025 SMTP begin submit message A new message is submitted to Advanced Queuing.
1026 SMTP AQ failed message Advanced Queuing could not process the message. The message will be NDRed or put into badmail.
1027 SMTP submit message to SD A message was submitted to the store driver by the MTA.
1028 SMTP SD local delivery Store driver successfully delivered a message (logged by store driver).
1029 SMTP SD gateway delivery Store driver transferred the message to the MTA.
1030 SMTP NDR all All recipients were NDRed.
1031 SMTP end outbound transfer The message was successfully transferred outbound.
2000 User Min Minimum value allowed for a third-party event. Put all non-MS events at this value or higher.

IIS Log File Information

After Windows 2000 is installed, the IIS logging information can be found at http://localhost/iishelp/iis/misc/default.asp. Expand the tree in the left pane to /Administration/Server Administration/Logging Site Activity and /Administration/Administrator’s Reference/Logging Properties Reference.

Exchange 2000 PerfMon Counters

A list of Exchange 2000 performance monitor counters is available in the Platform SDK.

Exchange 2000 Event Log Entries

A list of Exchange 2000 event log entries is available in the Platform SDK.

Appendix A: Directory Structure of the Exchange Subtree

DC=MICROSOFT,DC=COM – the root of the Active Directory.
+---CN=Configuration
    +---CN=Sites
    ¦   +---CN=Site2
    ¦   +---CN=Site1
    ¦   ¦   +---CN=Servers
    ¦   ¦   ¦   +---CN=Server2
    ¦   ¦   ¦   +---CN=Server1
    ¦   ¦   ¦       +---CN=Exchange Settings
    ¦   ¦   ¦           +---CN=Active Directory Connector (Server1)
    ¦   ¦   +---CN=NTDS Site Settings
    ¦   +---CN=Inter-Site Transports
    +---CN=Services
        +---CN=Microsoft Exchange
            +---CN=Organization1 – The root of the Exchange 2000 Hierarchy.
            ¦   +---CN=Recipient Policies – Contains e-mail address generation policies.
            ¦   ¦   +---CN=Default Policy – The default recipient policy.
            ¦   ¦   +---CN=Policy2 – A policy created to generate or modify recipient e-mail 
                              addresses.
            ¦   +---CN=Global Settings – Contains settings that affect all objects in the 
                                 Organization.
            ¦   ¦   +---CN=Instant Messaging – Permits configuration of firewall parameters 
                                    for instant messaging routers.
            ¦   ¦   +---CN=Internet Messaging – Permits configuration of MIME, charsets, 
                                 rtf formatting, and Out-of-Office behavior.
            ¦   ¦   ¦   +---CN=Default
            ¦   ¦   +---CN=Message Delivery – Permits configuration of size limits and 
                                    global message deletion.
            ¦   ¦       +---CN=Default Message Filter
            ¦   +---CN=Connections
            ¦   ¦   +---CN=SMTP (Server1-{GUID})
            ¦   ¦   +---CN=SMTP (Server1-{GUID2})
            ¦   +---CN=Administrative Groups – Contains defined Administrative Groups.
            ¦   ¦   +---CN=AdminGroup2
            ¦   ¦   +---CN=First Administrative Group – By default, all servers are contained 
                                             in this Admin Group.
            ¦   ¦       +---CN=Servers – Contains all servers in this admin group.
            ¦   ¦       ¦   +---CN=Server1 – Identifies a computer running Exchange 
                                    (5.5 or 2000).
            ¦   ¦       ¦       +---CN=Protocols
            ¦   ¦       ¦       ¦   +---CN=HTTP – Permits configuration of HTTP, and contains 
                                       HTTP virtual server objects.
            ¦   ¦       ¦       ¦   ¦   +---CN=1 – An HTTP Virtual Server.
            ¦   ¦       ¦       ¦   ¦       +---CN=Exadmin – A default virtual directory used 
                                       for managing public folders.
            ¦   ¦       ¦       ¦   ¦       +---CN=Exchange – A default virtual directory used 
                                    to provide access to all mailboxes.
            ¦   ¦       ¦       ¦   ¦       +---CN=public – A default virtual directory used 
                                   to provide access to the All Public Folders tree.
            ¦   ¦       ¦       ¦   +---CN=IMAP4 – Permits configuration of IMAP4, and contains 
                                    IMAP4 virtual server objects.
            ¦   ¦       ¦       ¦   ¦   +---CN=1 – An IMAP4 Virtual Server.
            ¦   ¦       ¦       ¦   ¦       +---CN=Sessions – Provides information on current 
                                     sessions opened to the virtual server.
            ¦   ¦       ¦       ¦   +---CN=IRCX
            ¦   ¦       ¦       ¦   +---CN=NNTP – Permits configuration of NNTP, and contains 
                                       NNTP virtual server objects.
            ¦   ¦       ¦       ¦   ¦   +---CN=1 – An NNTP Virtual Server.
            ¦   ¦       ¦       ¦   +---CN=POP3 – Permits configuration of POP3, and contains 
                                       POP3 virtual server objects.
            ¦   ¦       ¦       ¦   ¦   +---CN=1 – A POP3 Virtual Server.
            ¦   ¦       ¦       ¦   ¦       +---CN=Sessions – Provides information on current 
                                    sessions opened to the virtual server.
            ¦   ¦       ¦       ¦   +---CN=RVP
            ¦   ¦       ¦       ¦   +---CN=SMTP – Permits configuration of SMTP, and contains 
                                       SMTP virtual server objects.
            ¦   ¦       ¦       ¦       +---CN=1 – An SMTP Virtual Server.
            ¦   ¦       ¦       ¦           +---CN=Sessions – Provides information on current 
                                    sessions opened to the virtual server.
            ¦   ¦       ¦       ¦           +---CN=Domain – Contains specified domains for 
                                    which SMTP mail is accepted.
            ¦   ¦       ¦       ¦           +---CN=RoutingSources
            ¦   ¦       ¦       +---CN=Microsoft System Attendant
            ¦   ¦       ¦       +---CN=Microsoft MTA – Permits configuration of X.400 protocol.
            ¦   ¦       ¦       +---CN=Microsoft DXA
            ¦   ¦       ¦       +---CN=InformationStore – Contains all storage groups 
                                       (and information stores) on this server.
            ¦   ¦       ¦           +---CN=First Storage Group – By default, holds the Public 
                                    Information Store and the 
                                    Private Information Store objects.
            ¦   ¦       ¦               +---CN=Public Folder Store (Server1) – Stores public 
                                    folder trees.
            ¦   ¦       ¦               +---CN=Mailbox Store (Server1) – Stores users’ 
                                    mailboxes.
            ¦   ¦       +---CN=Routing Groups – Contains defined Routing Groups.  
                                     Routing Groups define a set of “well-connected” 
                                    servers for message transport purposes.
            ¦   ¦       ¦   +---CN=RoutingGroup2
            ¦   ¦       ¦   +---CN=First Routing Group
            ¦   ¦       ¦       +---CN=Connections – Contains defined connectors within the 
                                    routing group.
            ¦   ¦       ¦           +---CN=Connector for Novell GroupWise
            ¦   ¦       ¦           +---CN=MS Mail Connector
            ¦   ¦       ¦           +---CN=MS Schedule Plus Free-Busy Connector
            ¦   ¦       ¦           +---CN=Exchange Connector for Lotus ccMail
            ¦   ¦       ¦           +---CN=Connector for Lotus Notes
            ¦   ¦       +---CN=Policies – Contains server, mailbox store, and public folder 
                                 store policies.
            ¦   ¦       +---CN=Legacy GWART – Exists in Mixed mode environments.
            ¦   ¦       +---CN=Folder Hierarchies – Contains all public folder trees in 
                                    the organization.
            ¦   ¦       ¦   +---CN=Public Folders – The default public folder tree.
            ¦   ¦       +---CN=Exchange Conferencing – Permits configuration of the 
                                    Conferencing Manager Service.
            ¦   ¦       ¦   +---CN={GUID}
            ¦   ¦       ¦       +---CN=Exchange Video Conferencing Service
            ¦   ¦       ¦       +---CN=Exchange Data Conferencing Service
            ¦   ¦       ¦           +---CN=Server1
            ¦   ¦       +---CN=Chat Networks – Contains Chat Communities that each have 
                                   channels and their own administrative settings.
            ¦   ¦       ¦   +---CN=ChatNetwork2
            ¦   ¦       ¦   +---CN=Default-Chat-Network
            ¦   ¦       +---CN=Advanced Security
            ¦   ¦           +---CN=Encryption
            ¦   +---CN=Addressing
            ¦   ¦   +---CN=Display-Templates
            ¦   ¦   +---CN=Address-Types
            ¦   ¦   +---CN=Address-Templates
            ¦   +---CN=Address Lists Container – Contains address-list configuration data.  
                                     Address lists are query results that identify 
                                      recipients based upon specific criteria.
            ¦   ¦   +---CN=Offline Address Lists – Contains address lists that can be 
                                     downloaded by clients for use offline.
            ¦   ¦   ¦   +---CN=OfflineAddressBook2
            ¦   ¦   ¦   +---CN=Default Offline Address Book
            ¦   ¦   +---CN=All Global Address Lists – Contains global address lists for the 
                                    entire Organization.  Multiple lists can 
                                   be created for multi-domain hosting.
            ¦   ¦   ¦   +---CN=GlobalAddressList2
            ¦   ¦   ¦   +---CN=Default Global Address List
            ¦   ¦   ¦       +---CN=User2
            ¦   ¦   ¦       +---CN=Administrator
            ¦   ¦   +---CN=All Address Lists – Contains all default and custom recipient 
                                    address lists.
            ¦   ¦   ¦   +---CN=Public Folders
            ¦   ¦   ¦   ¦   +---CN=PF1
            ¦   ¦   ¦   +---CN=All Users
            ¦   ¦   ¦   ¦   +---CN=User2
            ¦   ¦   ¦   ¦   +---CN=Administrator
            ¦   ¦   ¦   +---CN=All Groups
            ¦   ¦   ¦   ¦   +---CN=Group1
            ¦   ¦   ¦   +---CN=All Contacts
            ¦   ¦   ¦   ¦   +---CN=Contact1
            ¦   ¦   ¦   +---CN=All Conferencing Resources
            ¦   ¦   ¦       +---CN=ConfRes1
            ¦   ¦   +---CN=Address List Services – Permits configuration of the service that 
                                    builds the address lists, incl. the 
                                    frequency of updates and identification 
                                    of the server performing the task.
            ¦   ¦       +---CN=Address List Service (Enterprise Configuration)
            ¦   ¦       +---CN=Address List Service (Server1)
            ¦   +---CN=Add-Ins
            +---CN=Active Directory Connections

Appendix B: Exchange 2000 WMI Provider Classes

ExchangeLink Class

Table 4. ExchangeLink class properties

Name Key Type
Protocol Name Yes String
VirtualServerName Yes String
LinkName Yes String
VirtualMachine No String
Version No Uint32
NumberOfMessages No Uint32
NextScheduledConnection No DateTime
OldestMessage No DateTime
SizeOfQueue No Uint64
LinkDN No String
ExtendedStateInfo No String
IncreasingTime No Uint32
StateFlags No Uint32
StateActive No Boolean
StateReady No Boolean
StateRetry No Boolean
StateScheduled No Boolean
StateRemote No Boolean
StateFrozen No Boolean
TypeRemoteDelivery No Boolean
TypeLocalDelivery No Boolean
TypePendingRouting No Boolean
TypePendingCategorization No Boolean
TypeCurrentlyUnreachable No Boolean
TypeDeferredDelivery No Boolean
TypeInternal No Boolean
SupportedLinkActions No Uint32
ActionKick No Boolean
ActionFreeze No Boolean
ActionThaw No Boolean

ExchangeQueue

Table 5. ExchangeQueue properties

Name Key Type
ProtocolName Yes String
VirtualServerName Yes String
LinkName Yes String
QueueName Yes String
VirtualMachine No String
Version No Uint32
NumberOfMessages No Uint32
SizeOfQueue No Uint64
IncreasingTime No Uint32
MsgEnumFlagsSupported No Uint32
GlobalStop No Boolean
CanEnumFirstNMessages No Boolean
CanEnumSender No Boolean
CanEnumRecipient No Boolean
CanEnumLargerThan No Boolean
CanEnumOlderThan No Boolean
CanEnumFrozen No Boolean
CanEnumNLargestMessages No Boolean
CanEnumNOldestMessages No Boolean
CanEnumFailed No Boolean
CanEnumAll No Boolean
CanEnumInvertSense No Boolean

ExchangeConnectorState

Table 6. ExchangeConnectorState properties

Name Key Type
DN Yes String
Name No String
GUID No String
GroupDN No String
IsUp No Boolean

ExchangeServerState

Table 7. ExchangeServerState properties

Name Key Type Values
DN Yes String N/A
Name No String N/A
GUID No String N/A
Version No Uint32 N/A
GroupDN No String N/A
Unreachable No Boolean N/A
ServerMaintenance No Boolean N/A
ServerStateString No String N/A
ServerState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error
QueuesStateString No String N/A
QueuesState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error
DisksStateString No String N/A
DisksState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error
MemoryStateString No String N/A
MemoryState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error
CPUStateString No String N/A
CPUState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error
ClusterStateString No String N/A
ClusterState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error
ServicesStateString No String N/A
ServicesState No Uint8 0 Unknown
      1 OK
2 Warning
3 Error

ExchangeClusterResource

Table 8. ExchangeClusterResource properties

Name Key Type
VirtualMachine Yes String
Name Yes String
Type No String
State No Uint32

Appendix C: Exchange 2000 Node Types and Clipboard Formats

Node Types and GUIDs

Table 9. Exchange 2000 node types and GUIDs

Node Name Node GUID
Exchange System Manager Object {F54E0c52-11FF-11d2-9F28-00C04FA37610}
Exchange Server Manager Object {F54E0C53-11FF-11d2-9F28-00C04FA37610}
Exchange Server Object {F54E0C54-11FF-11d2-9F28-00C04FA37610}
Exchange Public Store Object {F54E0C58-11FF-11d2-9F28-00C04FA37610}
Exchange Public Folder Resource Object {F54E0C59-11FF-11d2-9F28-00C04FA37610}
Exchange Public Store Replication Status Object {F54E0C5a-11FF-11d2-9F28-00C04FA37610}
Exchange Public Store Folder Replication Object {F54E0C5b-11FF-11d2-9F28-00C04FA37610}
Exchange MTA Object {F54E0C5c-11FF-11d2-9F28-00C04FA37610}
Exchange Details Template Root Object {F54E0C5d-11FF-11d2-9F28-00C04FA37610}
Exchange Details Template Language ID Object {F54E0C5e-11FF-11d2-9F28-00C04FA37610}
Exchange Details Template Object {F54E0C5f-11FF-11d2-9F28-00C04FA37610}
Exchange Private Store Object {F54E0C60-11FF-11d2-9F28-00C04FA37610}
Exchange Public Folder Object {F54E0C61-11FF-11d2-9F28-00C04FA37610}
Exchange Store Connections Object {F54E0C62-11FF-11d2-9F28-00C04FA37610}
Exchange Private Store Resources Object {F54E0C63-11FF-11d2-9F28-00C04FA37610}
Exchange Store Logons Object {F54E0C64-11FF-11d2-9F28-00C04FA37610}
Exchange Generic MAPI Object {F54E0C65-11FF-11d2-9F28-00C04FA37610}
Exchange Recipient Manager Object {F54E0C68-11FF-11d2-9F28-00C04FA37610}
Exchange Protocols Container Object {F54E0C69-11FF-11d2-9F28-00C04FA37610}
Exchange IMAP4 Container Object {F54E0C6a-11FF-11d2-9F28-00C04FA37610}
Exchange POP3 Container Object {F54E0C6b-11FF-11d2-9F28-00C04FA37610}
Exchange SMTP Container Object {F54E0C6c-11FF-11d2-9F28-00C04FA37610}
Exchange NNTP Container Object {F54E0C6d-11FF-11d2-9F28-00C04FA37610}
Exchange HTTP Container Object {F54E0C6e-11FF-11d2-9F28-00C04FA37610}
Exchange MTA TCP Stack Object {F54E0C6f-11FF-11d2-9F28-00C04FA37610}
Exchange Routing Object {F54E0C70-11FF-11d2-9F28-00C04FA37610}
Exchange Routing Groups Container Object {F54E0C71-11FF-11d2-9F28-00C04FA37610}
Exchange Connectors Container Object {F54E0C72-11FF-11d2-9F28-00C04FA37610}
Exchange TCP X400 Connector {F54E0C75-11FF-11d2-9F28-00C04FA37610}
Exchange TP4 X400 Connector {F54E0C76-11FF-11d2-9F28-00C04FA37610}
Exchange RAS X400 Connector {F54E0C77-11FF-11d2-9F28-00C04FA37610}
Exchange X25 X400 Connector {F54E0C78-11FF-11d2-9F28-00C04FA37610}
Exchange MTA TP4 Stack Object {F54E0C79-11FF-11d2-9F28-00C04FA37610}
Exchange MTA RAS Stack Object {F54E0C7A-11FF-11d2-9F28-00C04FA37610}
Exchange MTA X.25 Stack Object {F54E0C7B-11FF-11d2-9F28-00C04FA37610}
Exchange Routing Group Object {F54E0C7C-11FF-11d2-9F28-00C04FA37610}
Exchange Routing Group Connector Object {F54E0C7D-11FF-11d2-9F28-00C04FA37610}
Exchange SMTP Connector Object {F54E0C7E-11FF-11d2-9F28-00C04FA37610}
Public Folder Instances Object {F54E0C81-11FF-11d2-9F28-00C04FA37610}
Exchange Information Store Object {F54E0C83-11FF-11d2-9F28-00C04FA37610}
Exchange Storage Group Object {F54E0C84-11FF-11d2-9F28-00C04FA37610}
Exchange Public Folder Manager Object {F54E0C85-11FF-11d2-9F28-00C04FA37610}
Exchange Public Folder Top Level Hierarchy Object {F54E0C86-11FF-11d2-9F28-00C04FA37610}
Exchange Message Tracking Object {F54E0c87-11FF-11d2-9F28-00C04FA37610}
Exchange Routing Group Members Container Object {F54E0c88-11FF-11d2-9F28-00C04FA37610}
Exchange Routing Group Member Object {F54E0c89-11FF-11d2-9F28-00C04FA37610}
Exchange Admin Groups Container Object {F54E0c8a-11FF-11d2-9F28-00C04FA37610}
Exchange Admin Group Object {F54E0c8b-11FF-11d2-9F28-00C04FA37610}
Exchange Address List Manager Object {F54E0c8c-11FF-11d2-9F28-00C04FA37610}
Exchange Offline Address Book Manager Object {F54E0c8d-11FF-11d2-9F28-00C04FA37610}
Exchange Offline Address Book Object {F54E0c8e-11FF-11d2-9F28-00C04FA37610}
Exchange Address List Service {F54E0c8f-11FF-11d2-9F28-00C04FA37610}
Exchange Address List Services Container {F54E0c90-11FF-11d2-9F28-00C04FA37610}
Exchange Queue Viewer Link {F54E0C91-11FF-11d2-9F28-00C04FA37610}
Exchange Queue Viewer Object {F54E0c92-11FF-11d2-9F28-00C04FA37610}
Exchange Queue Viewer Message {F54E0C93-11FF-11d2-9F28-00C04FA37610}
Exchange Dirsync Requestor Object {F54E0c94-11FF-11d2-9F28-00C04FA37610}
Exchange Dirsync Server Object {F54E0c95-11FF-11d2-9F28-00C04FA37610}
Exchange Remote Dirsync Requestor Object {F54E0c96-11FF-11d2-9F28-00C04FA37610}
Exchange Local DXA Object {F54E0c97-11FF-11d2-9F28-00C04FA37610}
Exchange MSMail Object {F54E0c98-11FF-11d2-9F28-00C04FA37610}
Exchange Addressing Rules Object {F54E0c99-11FF-11d2-9F28-00C04FA37610}
Exchange Policy Manager Object {F54E0c9a-11FF-11d2-9F28-00C04FA37610}
Exchange Public Store Policy Object {F54E0c9c-11FF-11d2-9F28-00C04FA37610}
Exchange Private Store Policy Object {F54E0c9d-11FF-11d2-9F28-00C04FA37610}
Exchange CC:Mail Connector {F54E0c9e-11FF-11d2-9F28-00C04FA37610}
Exchange HTTP Virtual Server Object {F54E0c9f-11FF-11d2-9F28-00C04FA37610}
Exchange HTTP Virtual Directory Object {F54E0cA0-11FF-11d2-9F28-00C04FA37610}
Exchange Notes Connector Object {F54E0ca2-11FF-11d2-9F28-00C04FA37610}
Exchange Tools Container Object {F54E0ca3-11FF-11d2-9F28-00C04FA37610}
Exchange Monitoring Container {F54E0ca4-11FF-11d2-9F28-00C04FA37610}
Exchange Server Monitor Object {F54E0ca5-11FF-11d2-9F28-00C04FA37610}
Exchange Global Settings Container Object {F54E0ca6-11FF-11d2-9F28-00C04FA37610}
Exchange Server Policy Object {F54E0cA7-11FF-11d2-9F28-00C04FA37610}
Exchange Connector Monitor Object {F54E0cA9-11FF-11d2-9F28-00C04FA37610}
Exchange Schedule+ Free/Busy Connector Object {F54E0cAA-11FF-11d2-9F28-00C04FA37610}
Exchange Internet Message Formats Object {F54E0cab-11FF-11d2-9F28-00C04FA37610}
Exchange Message Delivery Object {F54E0cac-11FF-11d2-9F28-00C04FA37610}
Exchange Domain Object {F54E0cad-11FF-11d2-9F28-00C04FA37610}
Exchange Recipient Policy Object {F54E0CAE-11FF-11d2-9F28-00C04FA37610}
Exchange Site Replication Services Container Object {F54E0caf-11FF-11d2-9F28-00C04FA37610}
Exchange Site Replication Service Object {F54E0cb0-11FF-11d2-9F28-00C04FA37610}
Exchange Directory Replication Connector Object {F54E0cb1-11FF-11d2-9F28-00C04FA37610}
Exchange Groupwise Connector Object {F54E0cb2-11FF-11d2-9F28-00C04FA37610}
Exchange Recipients Container Object {F54E0cb3-11FF-11d2-9F28-00C04FA37610}

Clipboard Formats

These are the clipboard formats that are defined by Exchange 2000 Server for use by the Exchange System Manager.

Table 10. Exchange System Manager clipboard formats

Clipboard Format Description
CF_EXCHANGE_ADMIN_SERVER_NAME The name of the parent server of the object.
CF_EXCHANGE_ADMIN_ID The GUID of the object.
CF_EXCHANGE_ADMIN_DN Distinguished Name of the object.
CF_EXCHANGE_ADMIN_DC_NAME The name of the Domain Controller.
CF_EXCHANGE_ADMIN_QUERY_CUT Flag indicating if an object can be cut.
CF_EXCHANGE_ADMIN_MIXED_MODE Flag indicating if the organization has a mixed DS.
CF_EXCHANGE_ADMIN_AG_ENABLED Flag indicating if we display Admin Groups.
CF_EXCHANGE_ADMIN_RG_ENABLED Flag indicating if we display Routing Groups.
CF_EXCHANGE_ADMIN_HSCOPEITEM The HSCOPEITEM of this node.
CF_EXCHANGE_ADMIN_GROUP_GUID GUID of the object.
CF_EXCHANGE_ADMIN_OBJECT_VERSION Version (Exchange build number) of the object

 

These are clipboard formats that are used by Exchange 2000 Server, but that are not Exchange-specific.

Table 11. Non-Exchange-specific clipboard formats

Clipboard Format
MMC_SNAPIN_MACHINE_NAME
ISM_SNAPIN_MACHINE_NAME
ISM_SNAPIN_META_PATH
ISM_SNAPIN_SERVICE
ISM_SNAPIN_INSTANCE