The
Exchange Management Shell in Exchange Server 2010 is the command-line
interface that enables Exchange Server administrators to manage, check,
and report on any Exchange Server objects. These objects include
mailboxes, mailbox stores, DAGs, servers, connectors, and the Exchange
Server organization itself—anything that can be managed in Exchange
Server 2010 can be managed from the Exchange Management Shell.
The Exchange Management
Console (EMC) is actually a graphical user interface (GUI) for the
Exchange Management Shell, or EMS. Each task or operation that an
administrator does using the Exchange System Console is actually calling
an underlying EMS command or series of commands. There is nothing that
can be done from the EMC that cannot be done from EMS. However, there
are a lot of commands and operations that can only be done from EMS.
This is simply because Microsoft has not written a GUI front end for
these tasks.
Because EMS is based on
PowerShell V2, administrators have access to the full set of features
built in to PowerShell, plus custom extensions written by the Exchange
Server 2010 team. These Exchange Server 2010-specific commands, or
cmdlets, leverage the simplicity and power of PowerShell to perform
common and some not-so-common Exchange Server tasks. Also, because EMS
is now based on PowerShell V2, administrators can now perform Exchange
Server administration from a remote computer.
Note
All connections made
to any Exchange server using Exchange Management Shell are remote
connections, even when using EMS from a local Exchange server.
Administrators can now do
almost every single administrative task with an interactive command
line. EMS can be used to quickly check settings, create reports, check
the health of the Exchange servers, or, best of all, automate all the
administrator’s frequent operations.
Scripting and
automation are key to lowering total cost of ownership for Exchange
Server administrators. By providing a simple platform that enables
administrators to create, save, and distribute their own cmdlets, EMS
enables administrators to easily extend Exchange Server functionality
and administrative tasks that are appropriate for their support
structure and line of business. This, combined with Rights-Based Access
Control (RBAC), provides a significant benefit to the IT organization.
Since Exchange
Server’s early beginnings, Exchange Server administrators have requested
ways to manage all the buttons and knobs that are built in to Exchange
Server. The GUI allows only the administrator to do as much as the GUI
was programmed to do. Now that all these objects and settings are
available through EMS, administrators are free to develop, customize,
save, and distribute their own cmdlets to Exchange Server support staff
for maximum effectiveness.
The power of EMS can be used
to automate many different types of tasks. Imagine creating 10,000 test
user accounts for a test lab with one line of code or setting a 200MB
mailbox quota on all Sales Team mailboxes in the organization with one
line. That’s the power of the Exchange Management Shell.
The Exchange Management
Shell and PowerShell replace VBScript, WMI, ADSI, LDP, and more—all
within a single command-line interface. Tasks that used to require
specialized scripting knowledge can now be easily learned using
extensive help within the shell.
Cmdlets that
administrators create can be modified to do other tasks. Administrators
will quickly build a set of cmdlets that they will use and recycle into
new and more complex sets of functions.
A common question asked by
administrators is whether complex scripting is required in EMS to do
simple tasks. Do administrators have to learn complex syntax and command
switches to manage Exchange Server? Exchange Management Shell is
extremely powerful, yet very easy to learn, and helps to simplify many
tasks that previously had to be done by developers or programmers.
When the Exchange Server
2010 team started designing the Exchange Server command-line and
scripting interface, they made sure that 80 percent of Microsoft
customers, who normally
have little or no scripting experience, can still use the
PowerShell/Exchange Server command line to automate or perform their
tasks.
EMS makes it easier
to administer Exchange Server 2010 by making administration more safe,
easy, and fun. It improves the developer experience by making it easier
to add command-line management capabilities using Microsoft .NET. It
improves the administrative experience by enabling information
technology (IT) professionals to write secure automation scripts that
can run locally or remotely.
An abundance of
resources are available to the administrator who uses EMS and
PowerShell. Microsoft is committed to publishing dozens of example
scripts and cmdlets highlighting some of the more common administrative
tasks. Numerous other websites and utilities are also devoted to
PowerShell.
Understanding the EMS Is the Back End to the Exchange Management Console
The Exchange Management
Console is simply a GUI to Exchange Management Shell. Whenever an
operation is performed in EMC, it calls a set of cmdlets in EMS and
presents the results back to the GUI.
Everything an administrator
can do in EMC can be done in EMS but not always vice versa. If the
Exchange Server 2010 team were to add every configuration setting to the
EMC, it would be too complicated and cumbersome to navigate. Their goal
was to put the most-common administrative tasks in EMC.
When administrators
perform most operations in EMC, the EMS command used to execute the task
is presented in the GUI, similar to the screen shown in Figure 1.
Additionally,
all the wizards in the Exchange Server 2010 EMC include the command
that is created when you use an EMC Wizard to create or modify an
Exchange Server object. By clicking the Show Exchange Management Shell
Command button in the lower-left corner of the wizard, the wizard
completion window shows the command that would be run. It can also be
copied to the Clipboard for use in the EMS directly.