Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2
Topic Last Modified: 2009-07-09
This topic explains how to read the Exchange Management Shell parameter sets and examples in the Exchange Help documentation and how to format a command so that the Shell can process the command. In the Shell and the Microsoft Exchange Server 2010 Help, parameter sets are displayed in the Syntax section of a cmdlet Help topic. For more information about cmdlet help, see Getting Help.
See the following sections:
Command Conventions in the Exchange Management Shell
Command Operators in the Exchange Management Shell
Command Conventions in the Exchange Management Shell
The Shell follows several command conventions that help you understand what information is required or optional when you run a command and how you must present the parameters and their values. See the "Parameter Sets" section later in this topic for examples of how parameter sets are presented in the Shell Help and Exchange 2010 Help.
The following table lists these command conventions.
Exchange Management Shell command conventions
Symbol | Description |
---|---|
- |
A hyphen indicates that the next word on the command line is a parameter. The most common parameter is Identity. For more information, see Parameters. |
< > |
Angle brackets are used to enclose parameter values. These
values can be choices or names. For example, in |
[ ] |
Square brackets are used to enclose an optional parameter and its value. A parameter and its value that are not enclosed in square brackets are required. |
| |
When the pipe symbol is used in a parameter value list, such as
|
These command conventions help you understand how a command should be constructed. Don't type these conventions when you enter the command on the command line.
Parameter Sets
In the Exchange Help documentation, all cmdlets display their associated parameters in parameter sets. Parameter sets are groupings of parameters that can be used with each other. Parameters that exist in one parameter set, but not in another parameter set, are mutually exclusive. They can't be used together.
Although all cmdlets have parameter sets, many only have one set of parameters. This means that all the parameters on that cmdlet can be used with each other. Other cmdlets may have several parameter sets. The following example displays the parameter sets that are available on the New-SystemMessage cmdlet:
Copy Code | |
---|---|
New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <$true | $false> -Language <CultureInfo> -Text <String> [-DomainController <String>] [-Templ ateInstance <MshObject>] New-SystemMessage -Language <CultureInfo> -QuotaMessageType <WarningMailbox UnlimitedSize | WarningPublicFolderUnlimitedSize | WarningMailbox | Warning PublicFolder | ProhibitSendMailbox | ProhibitPostPublicFolder | ProhibitSen dReceiveMailBox> -Text <String> [-DomainController <String>] [-TemplateInst ance <MshObject>] |
The New-SystemMessage cmdlet has two parameter sets. The first parameter set contains the DsnCode parameter and Internal parameter, and the second parameter set contains the QuotaMessageType parameter. This means that the DsnCode parameter and Internal parameter can be used with each other. But, they can't be used with the QuotaMessageType parameter. The remaining parameters, Language, Text, DomainController, and TemplateInstance, are listed in both parameter sets. This means that they can be used with the DsnCode parameter and Internal parameter and with the QuotaMessageType parameter.
Parameter sets can indicate that a single cmdlet may have multiple uses. For example, you can use the New-SystemMessage cmdlet to configure customized delivery status notification (DSN) messages or configure customized mailbox quota limit messages. However, cmdlets typically have multiple parameter sets because one parameter may perform a function that is incompatible with another parameter. For example, the following example displays the parameter sets for the New-AddressList cmdlet:
Copy Code | |
---|---|
New-AddressList -Name <String> [-ConditionalCompany <MultiValuedProperty>] [-ConditionalCustomAttribute1 <MultiValuedProperty>] [-ConditionalCustomAtt ribute10 <MultiValuedProperty>] [-ConditionalCustomAttribute11 <MultiValued Property>] [-ConditionalCustomAttribute12 <MultiValuedProperty>] [-Conditio nalCustomAttribute13 <MultiValuedProperty>] [-ConditionalCustomAttribute14 <MultiValuedProperty>] [-ConditionalCustomAttribute15 <MultiValuedProperty> ] [-ConditionalCustomAttribute2 <MultiValuedProperty>] [-ConditionalCustomA ttribute3 <MultiValuedProperty>] [-ConditionalCustomAttribute4 <MultiValued Property>] [-ConditionalCustomAttribute5 <MultiValuedProperty>] [-Condition alCustomAttribute6 <MultiValuedProperty>] [-ConditionalCustomAttribute7 <Mu ltiValuedProperty>] [-ConditionalCustomAttribute8 <MultiValuedProperty>] [- ConditionalCustomAttribute9 <MultiValuedProperty>] [-ConditionalDepartment <MultiValuedProperty>] [-ConditionalStateOrProvince <MultiValuedProperty>] [-Confirm [<SwitchParameter>]] [-Container <AddressListIdParameter>] [-Disp layName <String>] [-DomainController <Fqdn>] [-IncludedRecipients <Nullable >] [-Organization <OrganizationIdParameter>] [-RecipientContainer <Organiza tionalUnitIdParameter>] [-WhatIf [<SwitchParameter>]] [<CommonParameters>] New-AddressList -Name <String> [-Confirm [<SwitchParameter>]] [-Container < AddressListIdParameter>] [-DisplayName <String>] [-DomainController <Fqdn>] [-Organization <OrganizationIdParameter>] [-RecipientContainer <Organizati onalUnitIdParameter>] [-RecipientFilter <String>] [-WhatIf [<SwitchParamete r>]] [<CommonParameters>] |
In the New-AddressList cmdlet, the first parameter set lists parameters that let you create a new address list based on values supplied to the Company, Department, IncludedRecipients, and StateOrProvice parameters. However, you can also create a new address list by using a custom filter that is specified with the RecipientFilter parameter. When you create a new address list, a custom filter that was specified by using the RecipientFilter parameter overrides anything that was configured by using the parameters that exist in the first parameter set. Therefore, the RecipientFilter parameter is put in its own parameter set. Exchange 2010 doesn't let you specify both parameters on the same command line. As with the New-SystemMessage cmdlet, the remaining parameters that exist in both parameters sets in the New-AddressList cmdlet can be used in any combination.
Use of Quotation Marks
Double quotation marks ( " ) are most
commonly used to enclose a value that has spaces when you pass that
value to a parameter. For example, if you want to pass
Contoso Receive Connector
to the Name parameter
of the Set-ReceiveConnector cmdlet, you must enclose
Contoso Receive Connector
in quotation marks as in the
following example:
Copy Code | |
---|---|
Set-ReceiveConnector -Name "Contoso Receive Connector" |
If you don't enclose the string in quotation marks, the Shell tries to interpret each word in the string as a new argument on the command line and displays an error.
In the Shell, double quotation marks and single
quotation marks ( ' ) have different meanings. When you
enclose a string in double quotation marks, the Shell replaces any
variables with a matching value. For example, assume the value
ServerName
is assigned to the variable
$Server
. Then, assume the following command is entered
on the command line:
Copy Code | |
---|---|
"$Server Example" |
The following output is displayed:
Copy Code | |
---|---|
ServerName Example |
The variable $Server
is replaced by the
value ServerName
in the output.
When you enclose a string in single quotation marks,
the Shell doesn't try to replace variables with a matching value.
Assume the variable $Server
is still assigned the
value ServerName
. Then assume the following command is
entered on the command line:
Copy Code | |
---|---|
'$Server-Example' |
The following output is displayed:
Copy Code | |
---|---|
$Server-Example |
The variable $Server
has not been replaced
with a value because the Shell doesn't interpret variables that are
included in text that is enclosed in single quotation marks.
For more information about variables, see User-Defined Variables and Shell Variables.
Escape Character
You may also want to display some characters, such as
the dollar sign ( $
), double or single
quotation marks, or back quotation mark
( `
). These characters have special
meanings when you use them in the Shell. To instruct the Shell not
to interpret these characters and to display them when they are
included in a string that is enclosed with double quotation marks,
you must use the back quotation mark escape character
( `
). For example, type the following text
on the command line:
Copy Code | |
---|---|
"The price is `$23." |
The following output is displayed:
Copy Code | |
---|---|
The price is $23. |
Because we used the back quotation escape character
with the dollar sign ( $
), the Shell
doesn't interpret the $
as the beginning of a
variable.
If you enclose a string in single quotation marks, you
don't have to escape any character unless you want to display a
single quotation mark in a string. If you want to display a single
quotation mark in a string that is enclosed in single quotation
marks, you must use two single quotation marks
( ''
). For example, type the following on
the command line:
Copy Code | |
---|---|
'Don''t confuse two single quotation marks with a double quotation mark!' |
The following output is displayed:
Copy Code | |
---|---|
Don't confuse two single quotation marks with a double quotation mark! |
Command Operators in the Exchange Management Shell
Use the operators in the following table when you type commands in the Shell. Some of the operators may match some of the previously mentioned command conventions. However, they don't have the same meaning when they are typed on the command line. The following table shows the valid operators that you can use in a command.
Exchange Management Shell command operators
Operator | Description |
---|---|
= |
The equal sign is used as an assignment character. The value on the right side of the equal sign is assigned to the variable on the left side of the equal sign. The following characters are also assignment characters:
|
: |
A colon can be used to separate a parameter's name and the
parameter's value, as in the following example:
|
! |
The exclamation point is a logical NOT operator. When it is used with the equal ( = ) sign, the combined pair means "not equal to." |
[ ] |
Brackets are used to specify the index value of an array
position. For example, Brackets can also be used to assign a type to a variable, as in
the following example: |
{ } |
Braces are used to include an expression in a command, as in the
following example: |
| |
The pipe symbol is used when one cmdlet pipes a result to
another cmdlet. For example, the following command pipes the
results from the Get-Mailbox cmdlet
to the Set-Mailbox cmdlet:
|
> |
The right-angle bracket is used to send the output of a command
to a file, as in the following example:
|
>> |
Double right-angle brackets are used to append the output of a
command to a file, if the file exists. If the file doesn't exist, a
new file is created. The following is an example of how to use
double right-angle brackets: |
" " |
Quotation marks are used to enclose a string that contains spaces. |
$ |
A dollar sign indicates a variable. For example, |
@ |
The @ symbol references an associative array. For more information, see Arrays. |
$( ) |
A dollar sign ( |
.. |
Double-periods indicate a value range. For example, if an array
contains several indexes, you can specify the following command to
return the values of all indexes between the second and fifth
indexes, as in the following example: |
+ |
The + operator adds two values together. For example,
|
- |
The - operator subtracts one value from another value.
For example, The - operator can also be used to represent a negative
number, such as |
* |
A wildcard character has several meanings. You can use wildcard
characters to match strings, to multiply numeric values, or, if
strings and numeric values are used together, to repeat the string
value the number of times that is specified by the numeric value,
as in the following example: |
/ |
The / operator divides one value by another. For example,
|
% |
When used in a numerical evaluation, the % operator
returns the remainder from a division operator. For example When used in a pipeline, the percent character ( For more information, see Pipelining. |
? |
The question mark character ( |