Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В справочных статьях по командлетам 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].Квадратные скобки также могут присваивать тип переменной. Например, чтобы определить переменную с именем
$AXML, используйте$A=[XML] "<Test><A>value</A></Test>". Доступны следующие типы переменных:Array, ,Bool,ByteChar,Char[],Decimal,Double,FloatIntInt[],Long,Long[], ,RegEx,Single,ScriptBlock, ,StringType, и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).*: звездочка можно использовать для следующих задач:-
Строки сопоставления: например,
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"}.|
- При числовом вычислении он возвращает остаток от оператора деления. Например, выражение