Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В справочных статьях по командлетам 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
- Text
- Подтвердить
- Контроллер домена
- ЧтоЕсли
Во втором наборе параметров доступны следующие параметры, поэтому их можно использовать в одной команде:
- QuotaMessageType
- Language
- Text
- Подтвердить
- Контроллер домена
- ЧтоЕсли
Параметры DsnCode и Internal доступны только в первом наборе параметров. Параметр QuotaMessageType доступен только во втором наборе параметров. Таким образом, вы не можете использовать следующие параметры в одной команде:
- DsnCode и QuotaMessageType.
- Internal и QuotaMessageType.
Следующие параметры доступны в обоих наборах параметров, поэтому их можно использовать в любой команде New-SystemMessage :
- Language
- Text
- Подтвердить
- Контроллер домена
- ЧтоЕсли
Запись <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-символом являются символы экранирования в последних кавычках (' ).
Например, если вы хотите получить результат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].Квадратные скобки также могут назначать тип переменной. Например, чтобы определить переменную с именем
$AXML, используйте$A=[XML] "<Test><A>value</A></Test>". Доступны следующие типы переменных:Array,Bool,Byte,TypeStringScriptBlockSingleRegExLong[]LongInt[]FloatDecimalIntCharChar[]Doubleи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. После сохранения переменной ее можно использовать в качестве значения параметра.@: символ "ат" ссылается на ассоциативный массив. Дополнительные сведения см. в разделе about_Arrays.$( ): знак рубля в скобках обозначает подстановку команд. Подстановка команды применяется, если выходные данные одной команды нужно использовать в качестве аргумента другой. Например,Get-ChildItem $(Read-Host -Prompt "Enter FileName: ")...: двойные периоды обозначают диапазон значений. Например, если массив содержит несколько индексов, можно вернуть значения всех индексов между вторым и пятым индексами, выполнив команду:$Blue[2..5].+: оператор "плюс" суммирует два значения. Например, выражение6 + 6равно12.-: оператор "минус" вычитает одно значение из другого (например,12 - 6равно6) или указывает отрицательное число (например,-6 * 6равно-36).*. Звездочку можно использовать для выполнения следующих задач:-
Сопоставление строк: Например,
Get-User | Where-Object {$_.Department -like 'Sales*'}). -
Умножение числовых значений: Например,
6 * 6равно36. -
Повторить строковое значение указанное количество раз: Например,
"Test" * 3равноTestTestTest.
-
Сопоставление строк: Например,
/: косая черта делит одно значение на другое. Например, выражение6 / 6равно1.%: Знак процента используется в следующих целях:- При численном вычислении он возвращает остаток от операции деления. Например, выражение
6 % 4равно2. - В конвейере это сокращение от командлета ForEach-Object . Например, выражение
Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name}is the same asImport-Csv C:\MyFile.csv | % {Set-Mailbox $_.Identity -Name $_.Name}. -
?: вопросительный знак является сокращением командлета Where-Object . Например, то же самое,Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"}чтоGet-Alias | ? {$_.Definition -eq "Clear-Host"}.|
- При численном вычислении он возвращает остаток от операции деления. Например, выражение