Синтаксис командлетов Exchange
В справочных статьях по командлетам Exchange используется стандартизированный метод, описывающий ключевые аспекты командлета. Например:
- Параметры, доступные в командлете .
- Значения, которые принимает каждый параметр.
- Параметры, которые можно использовать вместе, и параметры, которые необходимо использовать отдельно.
В этой статье описаны эти соглашения, а также синтаксис, необходимый для выполнения команд в Exchange PowerShell.
Соглашения о командах в Exchange PowerShell
Справка по Exchange PowerShell следует соглашениям, указывающим обязательные и необязательные параметры, а также способы ввода параметров и значений при выполнении команды. Эти соглашения о командах перечислены в представленной ниже таблице.
Символ | Описание |
---|---|
- |
Дефис обозначает параметр. Например, -Identity . |
< > |
Угловые скобки обозначают допустимые значения параметра. Например, -Location <ServerName> или -Enabled <$true | $false>. |
[ ] |
Квадратные скобки обозначают необязательные параметры и их значения. Например, [-WhatIf] или [-ResultSize <Unlimited>] . Пары "параметр-значение", не заключенные в квадратные скобки, являются обязательными. Например, -Password <SecureString> . Квадратные скобки вокруг самого имени параметра указывают на позиционный параметр (можно использовать значение параметра без указания имени параметра), а позиционные параметры могут быть обязательными или необязательными. Например, означает, Get-Mailbox [[-Identity] <MailboxIdParameter>] что параметр Identity является позициональным (так как он заключен в квадратные скобки) и необязательным (так как вся пара "параметр—значение" заключена в квадратные скобки), поэтому можно использовать Get-Mailbox -Identity <MailboxIdParameter> или Get-Mailbox <MailboxIdParameter> . Аналогичным образом означает, Set-Mailbox [-Identity] <MailboxIdParameter> что параметр Identity является позициональным (так как он заключен в квадратные скобки) и является обязательным (поскольку вся пара "параметр-значение" не заключена в квадратные скобки), поэтому можно использовать Set-Mailbox -Identity <MailboxIdParameter> или Set-Mailbox <MailboxIdParameter> . |
| |
Вертикальная черта в значениях параметров указывает на возможность выбора между значениями. Например, параметр -Enabled <$true | $false> указывает, что параметр Enabled может иметь значение $true или $false . |
Эти соглашения о командах помогут вам понять структуру команды. За исключением дефиса, указывающего параметр, эти символы не используются, как описано в таблице при выполнении командлетов в Exchange PowerShell.
Наборы параметров в Exchange PowerShell
Наборы параметров представляют собой группы параметров, которые можно использовать вместе в одной команде. Каждый набор параметров содержит по крайней мере один параметр, который недоступен в других наборах параметров, но наборы параметров обычно используют некоторые параметры.
Многие командлеты имеют только один набор параметров, что означает, что все параметры могут использоваться друг с другом. Другие командлеты имеют несколько наборов параметров, что означает, что некоторые параметры нельзя использовать с другими параметрами. Например, предположим, что в командлете New-SystemMessage доступны следующие наборы параметров:
New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <Boolean> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>
New-SystemMessage -QuotaMessageType <QuotaMessageType> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>
Следующие параметры доступны в первом наборе параметров, поэтому их можно использовать в той же команде:
- DsnCode
- Внутренняя
- Language
- Текст
- Подтвердить
- Domaincontroller
- Whatif
Во втором наборе параметров доступны следующие параметры, поэтому их можно использовать в той же команде:
- QuotaMessageType
- Language
- Текст
- Подтвердить
- Domaincontroller
- Whatif
Параметры DsnCode и Internal доступны только в первом наборе параметров. Параметр QuotaMessageType доступен только во втором наборе параметров. Таким образом, вы не можете использовать следующие параметры в той же команде:
- DsnCode и QuotaMessageType.
- Internal и QuotaMessageType.
Следующие параметры доступны в обоих наборах параметров, поэтому их можно использовать в любой команде New-SystemMessage :
- Language
- Текст
- Подтвердить
- Domaincontroller
- Whatif
Запись <CommonParameters>
указывает, что командлет поддерживает базовые Windows PowerShell параметры, доступные практически в любом командлете (например, Verbose). Общие параметры можно использовать с параметрами из любого набора параметров. Дополнительные сведения см. в статье about_CommonParameters.
Кавычки в Exchange PowerShell
В Exchange PowerShell можно заключать значения параметров, содержащие пробелы, в одиночные ( ' ) или двойные ( " ) кавычки. Например, следующие команды работают одинаковым образом:
Get-ReceiveConnector -Identity "Contoso Receive Connector"
Get-ReceiveConnector -Identity 'Contoso Receive Connector'
В предыдущих примерах, если значение не заключено в одиночные или двойные кавычки, команда завершается ошибкой, так как PowerShell обрабатывает каждое слово как новый аргумент (считается Contoso
значением параметра Identity , а Receive
значением неуказанным позициональным параметром). В этом примере ошибка выглядит следующим образом:
Не удается найти позиционный параметр, принимаюющий аргумент "Receive"
Для значений обычного текста одинарные кавычки и двойные кавычки на самом деле не имеют значения. Но выбор имеет важное значение, когда речь идет о переменных:
- Двойные кавычки: переменные заменяются фактическими значениями.
- Одинарные кавычки: переменные обрабатываются буквально.
Например, в зависимости от того, $Server = Mailbox01
какие кавычки вы используете, выводятся следующие выходные данные:
- "пример $Server" приводит к
Mailbox01 Example
. - "пример $Server" приводит к
$Server Example
.
Дополнительные сведения о переменных см. в разделе about_Variables и about_Automatic_Variables.
Escape-символы в Exchange PowerShell
В любом языке программирования escape-символ используется, чтобы специальные символы трактовались буквально, а не по их обычной функции в этом языке. В Exchange PowerShell, когда вы заключаете текстовую строку в двойные кавычки, escape-символ является escape-символом обратной кавычки ( ' ).
Например, если требуется вывод The price is $23
, введите значение "Цена " $ 23". Escape-символ требуется для символа доллара ( $ ), так как $ определяет переменные в PowerShell.
Если вы заключаете строку в одинарные кавычки, единственный специальный символ, о котором нужно беспокоиться, — это сам символ одной кавычки, для которого требуются две одинарные кавычки для экранирования ( ''
).
Например, если вам нужны выходные данные Don't confuse two single quotation marks with a double quotation mark!
, введите значение "Не путайте две одинарные кавычки с двойной кавычками!".
Операторы команд в Exchange PowerShell
В приведенной ниже таблице показаны допустимые операторы, которые можно использовать в команде Exchange. Некоторые из этих символов также описываются в разделе Соглашения о командах в Exchange PowerShell ранее в этой статье. Тем не менее значения этих символов меняются при их использовании в качестве операторов командной строки. Например, знак "минус", обозначающий параметр, также можно использовать в команде как математический оператор.
Оператор | Описание |
---|---|
= |
Знак равенства является символом назначения. Значение в правой части знака равенства присваивается переменной слева от знака равенства (например, $x= Get-Mailbox ). Вы также можете использовать другие символы со знаком равенства:
|
: |
Используйте двоеточие, чтобы отделить имя параметра от значения параметра. Например, -Enabled:$True . Разделитель двоеточий работает и является необязательным практически для всех пар параметров и значений. Для параметров переключателя требуется разделитель двоеточия. Дополнительные сведения о параметрах переключения см. в разделе about_Parameters. |
! |
Восклицательный знак является логическим оператором NOT. Объединенная пара != означает "не равно". |
[ ] |
Квадратные скобки указывают значение индекса позиции массива. Значения индекса — это смещения, которые всегда начинаются с нуля. Например, в массиве с именем $Red значением десятой позиции в массиве является $Red[9] . Квадратные скобки также могут присваивать тип переменной. Например, чтобы определить переменную с именем $A XML, используйте $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 -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB . |
> |
Используйте правоугольную скобку для отправки выходных данных команды в файл. Если файл уже существует, содержимое перезаписывается. Например, Get-TransportRule > "C:\My Documents\TransportRules.txt" . |
>> |
Используйте двойные угловые скобки, чтобы добавить выходные данные команды в существующий файл. Если указанный файл не существует, создается новый. Например, Get-TransportRule >> "C:\My Documents\TransportRules.txt" . |
" |
Используйте двойные кавычки для заключения текстовых строк, содержащих пробелы. Как описано ранее, переменные заменяются фактическими значениями. |
$ |
Знак доллара указывает на переменную. Например, чтобы создать переменную $Blue со значением 10, используйте $Blue = 10 . После сохранения переменной ее можно использовать в качестве значения параметра. |
@ |
Символ at ссылается на ассоциативный массив. Дополнительные сведения см. в разделе about_Arrays. |
$( ) |
Знак доллара с круглыми скобками указывает на подстановку команды. Подстановка команды применяется, если выходные данные одной команды нужно использовать в качестве аргумента другой. Например, Get-ChildItem $(Read-Host -Prompt "Enter FileName: ") . |
.. |
Две точки обозначают диапазон значений. Например, если массив содержит несколько индексов, можно вернуть значения всех индексов между вторым и пятым индексами, выполнив команду : $Blue[2..5] . |
+ |
Оператор знака "плюс" добавляет два значения вместе. Например, выражение 6 + 6 равно 12 . |
- |
Оператор знака "минус" вычитает одно значение из другого значения (например, 12 - 6 равно 6 ) или указывает отрицательное число (например, -6 * 6 равно -36 ). |
* |
Звездочка можно использовать для:
|
/ |
Косая черта делит одно значение на другое. Например, выражение 6 / 6 равно 1 . |
% |
Знак процента используется следующим образом:
|
? |
Знак вопроса является сокращенным для командлета Where-Object . Например, выражение Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} is the same as Get-Alias | ? {$_.Definition -eq "Clear-Host"} . |