An MMC console has no native system or network management functionality, but rather provides a common user interface for whatever management functionality it is populated with in the form of snap-ins.

A snap-in is a Component Object Model (COM) in-process server dynamic-link library (DLL). This COM interface is situated between MMC and the snap-in. MMC does not care how the snap-in communicates with the managed service. Snap-ins can communicate with the managed service through any data protocol that the managed service supports. MMC has no knowledge of the mechanism used for this communication. Both Microsoft developers and independent software vendors (ISVs) can create snap-ins.

There are two types of snap-ins:


A stand-alone snap-in, when loaded in a console, can perform its designated management task as the only snap-in loaded in the console.


An extension snap-in adds functionality to a stand-alone snap-in. Extension snap-ins can add their own nodes as children of the stand-alone snap-in's node. They can also add context menu items, toolbar buttons, property pages, and taskpad tasks to the stand-alone snap-in's node. Depending on the item extended, an extension snap-in can further be classified as any combination of the following:

  • Namespace extension
  • Context menu extension
  • Toolbar extension
  • Menu button extension
  • Property page extension
  • Taskpad extension

It is possible for a snap-in to operate as a stand-alone snap-in and also to extend the functionality of another snap-in as an extension snap-in. Snap-ins that take this double role are dual-mode snap-ins. For example, the Event Viewer snap-in reads the event logs of computers. If the Computer Management snap-in's computer object exists in the console, the Event Viewer snap-in automatically extends each instance of the computer object and provides appropriate event logs. When the Event Viewer snap-in is used as a stand-alone snap-in, an administrator must manually provide a computer name when the snap-in is opened, and the snap-in simply provides the event logs of this one computer.