Integration with Microsoft Management Console

 

When you install Exchange System Manager on a server running Exchange Server 2003 or a management workstation, the Setup program registers the Exchange MMC snap-ins in the local registry, to make them available in the MMC tool. Snap-ins are implemented in Component Object Model (COM) in-process server dynamic-link libraries (DLLs). In contrast to a stand-alone application that runs as a separate process, an in-process server DLL exposes one or more COM objects and runs within the process of the client application that uses these objects. For example, MMC snap-ins run in the process of MMC.exe. Snap-ins must be registered in the registry in the following keys:

  • HKEY_CLASSES_ROOT\CLSID   Each snap-in is assigned a GUID that identifies the snap-in as a unique COM class object within an in-process server DLL. These identifiers, known as class identifiers (CLSIDs), must be registered for each object in the CLSID registry key. For example, {1B600AEA-10BA-11d2-9F28-00C04FA37610} is the CLSID of the SystemMgr Class. The SystemMgr Class can be found in an in-process server DLL named Exadmin.dll, which is located in the \Program Files\Exchsrvr\Bin directory. (Most Exchange snap-ins are in this DLL.) The entries under the CLSID registry key define the threading model for the COM classes, the ProgID, the version number of the COM class, and more.

  • HKEY_LOCAL_MACHINE\Software\Microsoft\MMC\SnapIns   To define COM components as MMC snap-ins, CLSIDs must be registered under the SnapIns key. For example, if you search for a CLSID key of {1B600AEA-10BA-11d2-9F28-00C04FA37610} under the SnapIns key (that is, the CLSID of the SystemMgr Class), you find that this entry belongs to the Exchange System snap-in, which is the core snap-in of Exchange System Manager. The following table lists the entries for snap-ins under the SnapIns key.

    Registry parameters for MMC snap-ins

    Parent Key Parameter Type Comments

    {CLSID}

    NameString

    REG_SZ

    The NameString value specifies the display name of the snap-in, as it appears in the MMC user interface when adding a snap-in to a console. For example, Namestring=Exchange System defines the display name for the Exchange System snap-in.

    {CLSID}

    About

    REG_SZ

    The About value contains the CLSID of the object that is used to provide an icon, a description, and the About dialog box for the snap-in. For example, About= {1B600AEB-10BA-11d2-9F28-00C04FA37610} points to a specific CLSID. If you look up this CLSID under HKEY_CLASSES_ROOT\CLSID, you find that this is the CLSID for the AboutSystemMgr class, which also resides in Exadmin.dll.

    {CLSID}

    NameStringIndirect

    REG_SZ

    The NameStringIndirect value provides a resource DLL name and string identifier, as an indirect way to retrieve the name of the snap-in. For example,

    NameStringIndirect=@C:\\Program Files\\Exchsrvr\\bin\\exadmin.dll,-12577 specifies the name of the Exchange System snap-in, as found in Exadmin.dll. If NameStringIndirect does not exist, or if its value data does not lead to a successful string load, MMC then uses the NameString value as the name string.

    {CLSID}\ StandAlone

    N/A

    N/A

    An existing StandAlone key indicates that the snap-in is a stand-alone snap-in. You can add stand-alone snap-ins to an MMC console in the Add/Remove Snap-in dialog box. You can also add stand-alone snap-ins to subnodes of other snap-ins, using the stand-alone snap-in in the same way as an extension snap-in.

    Extension snap-ins do not have a StandAlone key. Therefore, the snap-in cannot be added to an MMC console without first adding a stand-alone snap-in that provides the nodes that the extension snap-in is designed to extend. For example, the Exchange Information Store extension snap-in extends the System Manager snap-in. Therefore, you can add only this extension snap-in when you add the System Manager snap-in to your MMC console. Extension snap-ins are listed as available extensions for a stand-alone snap-in in the Add/Remove Snap-in dialog box on the Extensions tab.

    {CLSID}\ NodeTypes

    {CLSID}

    N/A

    Nodes refer to the configuration objects in the MMC console tree. For example, in Exchange System Manager, the individual server objects in the Servers container under an administrative group are a specific node type. Node types are registered in the NodeTypes key.

    The NodeTypes key contains subkeys that are the GUIDs of the node types. MMC uses these GUIDs to enumerate the node types of the snap-in and then uses that list of node types to obtain the extension snap-ins for those node types. The set of extension snap-ins then appears as available extensions for the snap-in in the Extensions tab of the Add/Remove Snap-in dialog box.

  • KEY_LOCAL_MACHINE\Software\Microsoft\MMC\NodeTypes   All extensible node types have their own subkey (that is, the GUID of the node type) registered under the MMC\NodeTypes key. Each GUID key contains an Extensions subkey. The Extensions key contains additional subkeys that represent the actual types of extensions that this node type can have. Each extension type subkey contains values that represent the CLSIDs of the snap-ins that extend that node type. For example, the Exchange Post Office Protocol version 3 (POP3) container object (GUID {F54E0C6b-11FF-11d2-9F28-00C04FA37610}) is an extensible node type of the Exchange Protocols snap-in.

    Likewise, the key \NodeTypes\{F54E0C6b-11FF-11d2-9F28-00C04FA37610} has an Extensions subkey that lists the CLSID of the Exchange POP3 extension snap-in in the ContextMenu and NameSpace subkeys. This indicates that the Exchange POP3 extension snap-in extends the namespace and the context menu in Exchange System Manager for the Exchange POP3 container object. The namespace is the hierarchy of all objects that can be managed through an MMC console.

Exchange Server 2003 Snap-ins and Snap-in Extensions

As discussed in the previous section, stand-alone and extension snap-ins create the Exchange System Manager user interface. Extension snap-ins can extend the features of stand-alone snap-ins or other extension snap-ins. This modular architecture enables developers to implement specific management features. It also enables administrators to create custom management consoles. For example, you can put the Exchange Message Tracking Center snap-in in a custom MMC console and provide this snap-in to a messaging administrator who is responsible solely for message tracking.

The following table lists the available Exchange Server 2003 snap-ins and their possible snap-in extensions.

Exchange Server 2003 snap-ins and snap-in extensions

Snap-in Snap-in Extension In-process server DLL Description

Exchange Message Tracking Center

Not applicable

Exadmin.dll

Provides access to the message-tracking center. This is a stand-alone snap-in.

Exchange Protocols

Not applicable

Exadmin.dll

Implements the Protocols container and provides empty sublevel nodes that additional extension snap-ins can use to enhance the user interface in Exchange System Manager.

The Exchange Protocols snap-in is an extension snap-in of the Exchange System stand-alone snap-in. This snap-in is also an extension snap-in of the Exchange Servers extension snap-in.

 

Exchange HTTP

Exadmin.dll

Enables management of the HTTP protocol and HTTP virtual servers.

 

Exchange IMAP4

Imapmgr.dll

Enables management of the Internet Mail Access Protocol version 4 (IMAP4) and IMAP4 virtual servers.

 

Exchange NNTP

Nntpmgr.dll

Enables management of the Network News Transfer Protocol (NNTP) and NNTP virtual servers.

 

Exchange POP3

Pop3mgr.dll

Enables management of POP3 protocol and POP3 virtual servers.

 

Exchange SMTP

Exps.dll

Enables management of Simple Mail Transfer Protocol (SMTP) and SMTP virtual servers.

 

Exchange X.400

Exadmin.dll

Enables management of the local message transfer agent (MTA) and X.400 protocol settings.

Exchange Servers

Not applicable

Exadmin.dll

Enables the management of storage-specific settings on an Exchange server.

The Exchange Servers snap-in is an extension snap-in of the Exchange System stand-alone snap-in.

 

Exchange DXA

Exadmin.dll

Enables checking of directory synchronization settings when you run Microsoft Exchange Connector for Microsoft Mail on a server with an earlier version of Exchange.

Note

Configuring Exchange 2000 Server resources using Exchange Server 2003 System Manager is not supported. Make sure you use Exchange 2000 System Manager to configure directory synchronization with Microsoft Mail.

 

Exchange Information Store

Exadmin.dll

Enables the management of storage groups, mailbox stores, and public folder stores.

 

Exchange Monitoring

Exadmin.dll

Enables you to examine the state of Exchange servers and messaging connectors between routing groups.

 

Exchange Protocols

Exadmin.dll

As mentioned earlier in this table, this snap-in implements the Protocols container and provides empty sublevel nodes that the Exchange HTTP, Exchange IMAP4, Exchange NNTP, Exchange POP3, Exchange SMTP, and Exchange X.400 extension snap-ins use to enhance the user interface in Exchange System Manager.

 

Exchange Queue Viewer

Exadmin.dll

Provides access to the queue viewer in Exchange System Manager, which provides management interfaces for SMTP, MTA, X.400, and other connector queues.

Exchange System

Not applicable

Exadmin.dll

The core MMC snap-in of Exchange System Manager. This stand-alone snap-in implements the user interface from which an administrator manages global settings and server properties. It also provides additional nodes that the remaining snap-ins can use to extend the user interface.

 

Exchange Address Lists

Exadmin.dll

Enables management of address lists, including global address lists and offline address books.

 

Exchange Address Templates

Exadmin.dll

Enables management of address templates.

 

Exchange Calendar Connector

Exadmin.dll

Enables management of Calendar Connector instances. Calendar Connector enables the synchronization of free/busy information between Exchange users and Lotus Notes or Novell GroupWise users.

 

Exchange cc:Mail

Exadmin.dll

Enables checking the configuration of Connector for Lotus cc:Mail running on Exchange 2000 Server systems.

Note

Configuring Exchange 2000 Server resources using Exchange Server 2003 System Manager is not supported. Make sure you use Exchange 2000 System Manager to configure Connector for Lotus cc:Mail.

 

Exchange DXA

Exadmin.dll

Enables checking of directory synchronization settings when running Connector for Microsoft Mail on a server with an earlier version of Exchange.

Note

Configuring Exchange 2000 Server resources using Exchange Server 2003 System Manager is not supported. Make sure you use Exchange 2000 System Manager to configure directory synchronization with Microsoft Mail.

 

Exchange Folders

Exadmin.dll

Enables management of public folders and public folder trees.

 

Exchange GroupWise Connector

Exadmin.dll

Enables management of Connector for Novell GroupWise.

 

Exchange Information Store

Exadmin.dll

Enables management of storage groups, mailbox stores, and public folder stores.

 

Exchange Mailbox Recovery Center

Exadmin.dll

Provides access to Mailbox Recovery Center, which you can use to recover individual mailboxes from a backup.

 

Exchange Message Tracking Center

Exadmin.dll

Provides access to and use of Message Tracking Center.

 

Exchange Monitoring

Exadmin.dll

Provides access to the monitoring and status features for managing connectivity between routing groups.

 

Exchange MSMail

Exadmin.dll

Enables checking the configuration settings of Connector for Microsoft Mail running on Exchange 2000 servers.

Note

Configuring Exchange 2000 Server resources using Exchange Server 2003 System Manager is not supported. Make sure you use Exchange 2000 System Manager to configure Connector for Microsoft Mail.

 

Exchange Notes Connector

Exadmin.dll

Provides access to the Connector for Lotus Notes configuration settings.

 

Exchange Protocols

Exadmin.dll

As mentioned earlier in this table, this snap-in implements the Protocols container and provides empty sublevel nodes that the Exchange HTTP, Exchange IMAP4, Exchange NNTP, Exchange POP3, Exchange SMTP, and Exchange X.400 extension snap-ins use to enhance the user interface in Exchange System Manager.

 

Exchange Queue Viewer

Exadmin.dll

Provides access to the queue viewer in Exchange System Manager, which provides management interfaces for SMTP, MTA, X.400, and other connector queues.

 

Exchange Recipient Policies

Exadmin.dll

Enables management of recipient policies, which Recipient Update Service uses to assign recipient information, such as e-mail addresses, to user accounts.

 

Exchange Schedule+ Free/Busy Connector

Exadmin.dll

Enables checking the configuration settings of the Schedule+ Free/Busy Connector on servers running Exchange 2000 Server.

Note

Configuring Exchange 2000 Server resources using Exchange Server 2003 System Manager is not supported. Make sure you use Exchange 2000 System Manager to configure Schedule+ Free/Busy Connector.

 

Exchange Servers

Exadmin.dll

Enables the management of storage-specific settings on an Exchange server.

Building Custom Exchange Management Consoles

To create custom management consoles based on Exchange snap-ins, you can use either Exchange System or Exchange Message Tracking Center stand-alone snap-ins in the MMC console. You cannot, however, create an MMC console for public folder administration with only the Exchange Folders extension snap-in. You must first add the Exchange System stand-alone snap-in to the console. However, when you add the Exchange System snap-in, you provide administrator access to global settings and server properties, which you may not want to provide. Fortunately, there is a solution to this dilemma.

Instead of adding separate snap-ins to the console, you can add the full Exchange System snap-in and then locate the object in the MMC namespace that you want to provide, such as the Public Folders node. When you right-click this node, you can select the New Window from Here command from the context menu. This will open a subwindow with the selected node as the root of the hierarchy. You can then close the subwindow that shows all nodes and save the console in its current state in an .msc file.

MMC consoles can run in one of two modes: author mode or user mode. You can use author mode to create new consoles or modify existing consoles. You use user mode to work with existing consoles for system administration. There are three levels of user mode:

  • User mode - full access   When running a console in this mode, the user can use all available functionality of the snap-ins, but the user cannot add or remove snap-ins or save changes to the console.

  • User mode - limited access, multiple window   When running a console in this mode, the user cannot add or remove snap-ins or save changes to the console. The user also cannot close any windows that were open when the console author last saved the console.

  • **User mode - limited access, single window   **Running a console in this mode, the user cannot add or remove snap-ins or save changes to the console. The user also cannot open additional subwindows.

The following figure shows a custom console for public folder management.

A console for public folder management in user mode

25b4fecd-2ec6-4b57-96c7-2876a97b3812

You can use the MMC command line switch /a to open a saved console in author mode and make changes to saved consoles. When you open saved consoles using the /a switch, they are opened in author mode, regardless of their default mode. However, this does not permanently change the default mode setting. When you do not specify the /a switch, MMC opens console files according to their default mode settings.

Note

Do not add the StandAlone key to the registry settings of an extension snap-in to convert the snap-in to a stand-alone snap-in. Extension snap-ins depend on nodes and features exposed by their parent snap-ins and cannot function correctly as stand-alone snap-ins.