Barry Steinglass
Microsoft Corporation
January 2000
Summary: This article discusses building system management software for Microsoft Exchange 2000 Server. (29 printed pages)
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
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.
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.
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.
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.
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 (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.
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/.
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 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.
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. |
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.
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.
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:
Comprehensive documentation for CDO for Exchange Management is in the Platform SDK.
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:
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 (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.
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.
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.
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.
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.”
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.
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.
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. |
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. |
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.
A list of Exchange 2000 performance monitor counters is available in the Platform SDK.
A list of Exchange 2000 event log entries is available in the Platform SDK.
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
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 |
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 |
Table 6. ExchangeConnectorState properties
Name | Key | Type |
DN | Yes | String |
Name | No | String |
GUID | No | String |
GroupDN | No | String |
IsUp | No | Boolean |
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 |
Table 8. ExchangeClusterResource properties
Name | Key | Type |
VirtualMachine | Yes | String |
Name | Yes | String |
Type | No | String |
State | No | Uint32 |
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} |
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 |