Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Topic Last Modified: 2009-09-11

A cmdlet, pronounced "command-let", is the smallest unit of functionality in the Exchange Management Shell. Cmdlets resemble built-in commands in other shells, for example, the dir command found in cmd.exe. Like these familiar commands, cmdlets can be called directly from the command line in the Shell and run under the context of the Shell, not as a separate process.

Since Microsoft Exchange Server 2007, there have been changes to how Exchange 2010 uses cmdlets internally due to the use of Windows PowerShell remoting functionality. These changes have little to no impact on how you need to use cmdlets, but they may offer additional flexibility in how you manage your Exchange servers.

Cmdlets are usually designed around repetitive administrative tasks, and, in the Shell, several hundred cmdlets are provided for Exchange-specific management tasks. These cmdlets are available in addition to the non-Exchange system cmdlets included in the basic Windows PowerShell shell design. For information about how to open the Exchange Management Shell, see Open the Shell.

All cmdlets in the Shell are presented in verb-noun pairs. The verb-noun pair is always separated by a hyphen (-) without spaces, and the cmdlet nouns are always singular. Verbs refer to the action that the cmdlet takes. Nouns refer to the object on which the cmdlet takes action. For example, in the Get-SystemMessage cmdlet, the verb is Get, and the noun is SystemMessage. All Shell cmdlets that manage a specific feature share the same noun. The following table provides examples of some verbs available in the Shell.

By default, if the verb is omitted, the Shell assumes the Get verb. For example, when you call Mailbox, you retrieve the same results as when you call Get-Mailbox.

Examples of verbs in the Exchange Management Shell

Verb Description


Disable cmdlets set the Enabled status of the specified Exchange 2010 object to $False. This prevents the object from processing data even though the object exists.


Enable cmdlets set the Enabled status of the specified Exchange 2010 object to $True. This enables the object to process data.


Get cmdlets retrieve information about a specific Exchange 2010 object.

Most Get cmdlets only return summary information when you run them. To tell the Get cmdlet to return verbose information when you run a command, pipe the command to the Format-List cmdlet. For more information about the Format-List command, see Working with Command Output. For more information about pipelining, see Pipelining.


Install cmdlets install a new object or feature on an Exchange 2010 server.


Move cmdlets relocate the specified Exchange 2010 object from one container or server to another.


New cmdlets create new Exchange 2010 object.


Remove cmdlets delete the specified Exchange 2010 object.


Set cmdlets modify the properties of an existing Exchange 2010 object.


Test cmdlets test specific Exchange 2010 components and provide log files that you can examine.


Uninstall cmdlets remove an object or feature from an Exchange 2010 server.

The following list of cmdlets is an example of a complete cmdlet set. This cmdlet set is used to manage the delivery status notification (DSN) message and mailbox quota message features of Exchange 2010:

For More Information