В этом разделе рассматривается, как разбирать наборы параметров среды управления Exchange и примеров в справочной документации Exchange и как создавать команды в таком формате, чтобы эту команду можно было обработать в среде управления Exchange. В среде управления Exchange наборы параметров отображаются в подразделе «Использование» раздела справки по командлету. В файле справки Microsoft Exchange Server 2007 наборы параметров отображаются в подразделе «Синтаксис» раздела справки по командлету.

Дополнительные сведения о справке по командлетам см. в разделе Получение справки.

Соглашения о записи команд в среде управления Exchange

В среде управления Exchange используется ряд соглашений о записи команд, зная которые, проще понять, какие данные являются обязательными и необязательными при выполнении команды и как надо указывать параметры и их значения. Примеры записи наборов параметров в справке среды управления Exchange и файле справки Exchange 2007 см. в подразделе «Наборы параметров» ниже в этом разделе.

В таблице 1 приводятся соглашения о записи команд.

Таблица 1. Соглашения о записи команд в среде управления Exchange

Символ Описание

-

Дефис указывает, что следующее слово в командной строке является параметром. Наиболее распространенный параметр — Identity. Дополнительные сведения о параметрах см. в разделе Параметры.

< >

В угловых скобках указываются значения параметра. Эти значения могут быть вариантами выбора или именами. Например, в строке -Parameter1 <1 | 2 | 3> числа отображают конкретные варианты числовых значений. В строке -Parameter2 <ServerName> ServerName представляет фактическое значение.

[ ]

В квадратные скобки заключаются необязательные параметры и их значения. Если параметр и его значение не заключены в квадратные скобки, такой параметр является обязательным.

|

Если в списке значений параметра стоит вертикальная черта, например, -Parameter1 <1 | 2 | 3>, это означает возможность выбора из доступных значений. Данное соглашение применяется для параметров System.Enum и System.Boolean.

Эти соглашения о записи команд помогут понять структуру команды. Символы, используемые при описании синтаксиса, в командной строке не вводятся.

Наборы параметров

В справочной документации Exchange параметры всех командлетов отображаются в наборах параметров. Наборы параметров представляют собой группы параметров, которые можно использовать друг с другом. Параметры, которые указаны в одном наборе параметров, однако отсутствуют в другом наборе, являются взаимоисключающими. Их нельзя использовать одновременно.

Хотя все командлеты имеют наборы параметров, у многих из них есть только один набор параметров. Это означает, что все параметры такого командлета могут использоваться в сочетании друг с другом. Для других командлетов доступно несколько наборов параметров. В следующем примере показаны наборы параметров, доступные для командлета New-SystemMessage:

Копировать код
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>]

Командлет New-SystemMessage имеет два набора параметров. Первый набор параметров содержит параметры DsnCode и Internal, а второй набор параметров — параметр QuotaMessageType. Это означает, что параметры DsnCode и Internal могут использоваться одновременно. Однако их нельзя использовать, если указан параметр QuotaMessageType. Остальные параметры, Language, Text, DomainController и TemplateInstance, присутствуют в обоих наборах параметров. Это означает, что они могут использоваться как с параметрами DsnCode, так и Internal, а также с параметром QuotaMessageType.

Наборы параметров свидетельствуют, что один и тот же командлет можно использовать в нескольких целях. Например, с помощью командлета New-SystemMessage можно настраивать собственные уведомления о состоянии доставки или собственные сообщения о квоте почтового ящика. Однако командлеты обычно имеют несколько наборов параметров в связи с тем, что один из параметр задает выполнение функции, несовместимой с другим параметром. Так, в следующем примере показаны наборы параметров для командлета New-AddressList:

Копировать код
New-AddressList -Name <String> [-Company <MultiValuedProperty>] [-Container
 <AddressListIdParameter>] [-Department <MultiValuedProperty>] [-DisplayNam
e <String>] [-DomainController <String>] [-IncludedRecipients <Nullable>] [
-StateOrProvince <MultiValuedProperty>] [-TemplateInstance <MshObject>]

New-AddressList -Name <String> [-Container <AddressListIdParameter>] [-Disp
layName <String>] [-DomainController <String>] [-RecipientFilter <String>]
[-TemplateInstance <MshObject>] 

В командлете New-AddressList первый набор параметров содержит параметры, с помощью которых можно создать список адресов на основе значений, указанных в параметрах Company, Department, IncludedRecipients и StateOrProvice. Однако список адресов также можно создать с помощью настраиваемого фильтра, который определяется параметром RecipientFilter. При создании списка адресов настраиваемый фильтр, указанный с помощью параметра RecipientFilter, переопределяет настройку, заданную с использованием параметров первого набора. Поэтому параметр RecipientFilter помещен в отдельный набор параметров. В Exchange 2007 нельзя указать взаимоисключающие параметры в одной командной строке. Как и в случае с командлетом New-SystemMessage, остальные параметры, включенные в оба набора параметров в командлете New-AddressList, могут использоваться в любом сочетании.

Использование кавычек

В прямые кавычки (") чаще всего заключаются значения с пробелами, которые передаются параметру. Например, если необходимо передать значение Contoso Receive Connector параметру Name командлета Set-ReceiveConnector, значение Contoso Receive Connector необходимо заключить в кавычки, как показано в следующем примере:

Копировать код
Set-ReceiveConnector -Name "Contoso Receive Connector"

Если строка не заключена в кавычки, командная консоль Exchange пытается интерпретировать каждое слово в строке как новый аргумент командной строки и выводит сообщение об ошибке.

Прямые кавычки и апострофы (') имеют в командной консоли Exchange разное значение. Если строка заключена в прямые кавычки, командная консоль Exchange заменяет все переменную соответствующими значениями. Допустим, например, что переменной $Server присвоено значение ServerName. В командной строке вводится следующая команда:

Копировать код
"$Server Example"

Выводится следующий результат:

Копировать код
ServerName Example

Переменная $Server заменяется при выводе значением ServerName.

Если строка заключена в апострофы, командная консоль Exchange не пытается заменять переменные соответствующим значением. Допустим, что переменной $Server присвоено значение ServerName. В командной строке вводится следующая команда:

Копировать код
'$Server-Example'

Выводится следующий результат:

Копировать код
$Server-Example

Переменная $Server не была заменена значением, так как командная консоль Exchange не интерпретирует переменные в тексте, заключенном в апострофы.

Дополнительные сведения о переменных см. в разделах Пользовательские переменные и Переменные среды.

Также может потребоваться отображение некоторых знаков, таких как знак доллара ( ), прямые кавычки, апострофы или обратный апостроф ( ). Эти знаки имеют специальное значение при использовании в командной консоли Exchange. Чтобы командная консоль Exchange не интерпретировала эти знаки, а выводила их в строке, заключенной в прямые кавычки, необходимо использовать escape-знак обратного апострофа ( ` ). Например, введите в командной строке следующую команду:

Копировать код
"The price is `$23."

Выводится следующий результат:

Копировать код
The price is $23.

Так как со знаком доллара ( ) использовался escape-знак обратного апострофа, командная консоль Exchange не интерпретировала $ как начало переменной.

Если строка заключена в апострофы, для отображения любых знаков, кроме апострофа, не нужно использовать escape-знак. Если в строке, заключенной в апострофы, необходимо отобразить апостроф, используйте два апострофа ( '' ). Например, введите в командной строке следующую команду:

Копировать код
'Don''t confuse two single quotation marks with a double quotation mark!'

Выводится следующий результат:

Копировать код
Don't confuse two single quotation marks with a double quotation mark!

Командные операторы в среде управления Exchange

Операторы, приведенные в таблице 2, используются при вводе команд в среде управления Exchange. Некоторые из этих операторов могут совпадать с символами, указанными выше в соглашениях о записи команд. Однако в командной строке они имеют другое значение. В таблице 2 показаны допустимые операторы, которые можно использовать в команде.

Таблица 2. Командные операторы среды управления Exchange

Оператор Описание

=

Знак равенства используется в качестве символа присваивания. Значение, находящееся с правой стороны знака равенства, присваивается переменной, расположенной с левой стороны знака равенства. Следующие знаки также являются символами присваивания:

  • +=. Добавление значения, расположенного с правой стороны знака равенства, к текущему значению переменной, расположенной с левой стороны знака равенства.

  • -=. Вычитание значения, расположенного с правой стороны знака равенства, из текущего значения переменной, расположенной с левой стороны знака равенства.

  • *=. Умножение текущего значения переменной, расположенной с левой стороны знака равенства, на значение, указанное с правой стороны знака равенства.

  • *=. Деление текущего значения переменной, расположенной с левой стороны знака равенства, на значение, указанное с правой стороны знака равенства.

  • %=. Изменение текущего значения переменной, расположенной с левой стороны знака равенства, на значение, указанное с правой стороны знака равенства.

:

Двоеточие используется для отделения имени параметра от значения параметра, как показано в следующем примере: -Enabled:$True. Использование двоеточия необязательно для всех параметров, кроме параметров переключения. Дополнительные сведения параметрах переключения см. в разделе Параметры.

!

Восклицательный знак является логическим оператором NOT. Если он используется вместе со знаком равенства ( ), это сочетание означает «не равно».

[ ]

С помощью скобок указывается индекс положения в массиве. Например, $Red[9] указывает на десятую позицию в массиве $Red. Десятая позиция обусловлена тем, что индексация массивов начинается с нуля ( 0 ).

Скобки также используются, чтобы присвоить переменной тип, как в следующем примере: $A=[XML] "<Test><A>value</A></Test>". Допустимы следующие типы: Array, Bool, Byte, Char, Char[], Decimal, Double, Float, Int, Int[], Long, Long[], RegEx, Single, ScriptBlock, String, Type и XML.

{ }

В фигурные скобки заключается выражение в команде, как показано в следующем примере: Get-Process | Where { $_.HandleCount -gt 400 }

|

Вертикальная черта указывает, что результат выполнения одного командлета передается в другой командлет. Например, следующая команда передает результат выполнения командлета Get-Mailbox в командлет Move-Mailbox: Get-Mailbox -Server SRV1 | Move-Mailbox -TargetDatabase SRV2

>

Правая угловая скобка используется для вывода результатов выполнения команды в файл, как показано в следующем примере: Get-TransportRulePredicate > c:\out.txt. Конечный файл перезаписывается.

>>

Двойная правая угловая скобка означает, что результат выполнения команды будет добавлен в файл, если этот файл существует. Если файл не существует, создается новый файл. Ниже приведен пример использования двойной правой угловой скобки: Get-TransportRulePredicate >>c:\out.txt

" "

В кавычки заключается строка, которая содержит пробелы.

$

Знак доллара обозначает переменную. Например, команда $Blue = 10 присваивает значение 10 переменной $Blue.

@

Знак @ указывает на связанный массив. Дополнительные сведения см. в разделе Массивы.

$( )

Знак доллара ( $ ) в круглых скобках указывает на подстановку команды. Подстановка команды используется, если нужно использовать выходные данные одной команды в качестве аргумента другой команды, как показано в следующем примере: Get-ChildItem $(Read-Host -Prompt "Enter FileName: ")

..

Две точки указывают на диапазон значений. Например, если массив содержит несколько индексов, с помощью следующей команды можно возвратить значения всех индексов между вторым и пятым, как показано в следующем примере: $Blue[2..5]

+

Оператор + складывает два значения. Например, 6 + 6 равно 12.

-

Оператор - вычитает одно значение из другого. Например, 12 - 6 равняется 6.

Оператор - также может использоваться для обозначения отрицательного значения, такого как -6. Например, -6 * 6 равно -36.

*

Подстановочный знак имеет несколько значений. С помощью подстановочного знака можно сопоставлять строки, умножать числовые значения, если строковые и числовые значения используются в сочетании друг с другом, повторять указанное строковое значение количество раз, определенное числовым значением, как показано в следующем примере: "Test" * 3 равно TestTestTest.

/

Оператор / делит одно число на другое. Например, 6 / 6 равно 1.

%

Оператор % возвращает остаток от операции деления. Например, , 6 % 4 равняется 2.