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 theCLSID
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 theCLSID
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 theSnapIns
key. For example, if you search for a CLSID key of{1B600AEA-10BA-11d2-9F28-00C04FA37610}
under theSnapIns
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 theSnapIns
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 underHKEY_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 theNameString
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 theMMC\NodeTypes
key. Each GUID key contains anExtensions
subkey. TheExtensions
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 anExtensions
subkey that lists the CLSID of the Exchange POP3 extension snap-in in theContextMenu
andNameSpace
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
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.