Exchange Cmdlet 語法

Exchange Cmdlet 參考文章使用標準化的方法,描述有關 Cmdlet 的重要層面。 例如:

  • Cmdlet 上可用的參數。
  • 每個參數所接受的值。
  • 可以一起使用的參數,以及需要分別使用的參數。

本文說明這些慣例,也是在 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 中執行 Cmdlets 時,您不會依照表格中的描述來使用這些符號。

Exchange PowerShell 中的參數集

參數集是可在相同命令中,一起使用的參數群組。 雖然參數集通常會共用某些參數,但每個參數集都包含至少一個參數組中沒有的參數,而且無法與不同參數組中的某些參數一起使用。

許多 Cmdlet 只有一組參數集,這表示所有可用的參數都可以一起使用。其他 Cmdlet 則具有多組參數集,這表示某些參數會執行與其他參數不相容的功能。例如,假設在 New-SystemMessage Cmdlet 上有下列參數集可供使用︰

New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <Boolean> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <COMMON PARAMETERS>

New-SystemMessage -Language <CultureInfo> -QuotaMessageType <QuotaMessageType> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <COMMON PARAMETERS>

此 Cmdlet 具有兩組不同的參數集。 根據專案,您可以在同一個命令中同時使用這些參數:

  • DsnCode
  • 內部
  • Language
  • Text
  • Confirm
  • DomainController
  • WhatIf

然後,您可以在相同的命令中,同時使用這些參數︰

  • Language
  • QuotaMessageType
  • Text
  • Confirm
  • DomainController
  • WhatIf

但是,您無法在相同的命令中,同時使用這些參數︰

  • DsnCodeQuotaMessageType
  • InternalQuotaMessageType

<COMMON PARAMETERS> 專案表示 Cmdlet 支援基本 Windows PowerShell 參數,可在幾乎任何 Cmdlet ((例如 [ 調試) ])。 您可以搭配任何參數組中的參數使用通用參數。 如需詳細資訊,請參閱 about_CommonParameters

Exchange PowerShell 中的引號

在 Exchange PowerShell 中,您會使用單引號 ( ' ) 或雙引號 ( " ) 括住包含空格的參數值。例如,下列命令的行為相同︰

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

如果您未用引號括住此值 Contoso Receive Connector ,Exchange PowerShell 會嘗試將每個單字視為新的引數,而命令將會失敗。 在這個範例中,您會收到錯誤,如下所示︰

找不到接受引數 ' Receive ' 的位置參數

如果此值包含變數,您需要在單引號和雙引號之間進行小心選擇。 例如,假設您有一個名為 $Server 的變數,其值為 Mailbox01

  • 雙引號:變數是以其值取代。 例如,如果 $Server 變數的值 Mailbox01,輸入 "$Server 範例" 會產生輸出 Mailbox01 Example

  • 單引號:變數會以原義處理。 輸入 ' $Server 範例 ' 會產生輸出 $Server Example

如需變數的詳細資訊,請參閱 about_Variablesabout_Automatic_Variables

Exchange PowerShell 中的逸出字元

在任何程式設計語言中, 逸出字元 是用來以原義的方式,而不是以該語言的 normal 函數來識別特殊字元。 在 Exchange PowerShell 中,當您將文字字串用雙引號括住時,逸出字元就是反引號逸出字元 ( ' ) 。

例如,如果您想要輸出 The price is $23 ,請輸入值「 price 是 ` $23」。 在貨幣符號字元 ( $ ) 上必須有轉義符,因為 $ 定義 PowerShell 中的變數。

如果以單引號括住字串,您需要擔心的唯一特殊字元是單引號字元本身,它需要兩個單引號才能轉義 ( '' ) 。

例如,如果您想要輸出 Don't confuse two single quotation marks with a double quotation mark! ,請輸入值 ' Don ' 不要混淆兩個單引號標記! '

Exchange PowerShell 中的命令運算子

下表會顯示您可在 Exchange 命令中使用的有效運算子。先前在 Exchange PowerShell 中的命令慣例區段中,也已說明了這些符號其中的一部分。不過,在命令列中用作運算子時,這些符號會有不同的意義。例如,用來表示參數的負號,也可用在命令中用作數學運算子。



運算子 描述
= 等號是做為指派字元使用。等號右邊的值是指派給等號左邊的變數。下列字元也是指派字元:
  • +=:將等號右邊的值,加上等於等號左邊變數中所包含的目前值。
  • -=:從等號左側的變數中所包含的目前值,減去等號右邊的值。
  • *=:將等號左邊的變數的目前值乘以等號右邊的值所指定的值。
  • /=:將等號左側變數的目前值,除以等號右邊的值所指定的值。
  • %=:以等號右側所指定的值,修改等號左邊變數左邊的目前值。。
: 冒號可用來分隔參數名稱和參數值。 例如,-Enabled:$True。 除了切換參數之外,在所有參數類型中冒號的使用都是選用的。 如需切換參數的詳細資訊,請參閱 about_Parameters
! 驚嘆號是邏輯 NOT 運算子。 當它與等號 ( 搭配使用時 = ) sign, () 的組合 != 表示「不等於」。
[ ] 方括弧是用來指定陣列位置的索引值。 索引值是從零開始。 例如, $Red[9] 參考陣列中的第十個索引位置 $Red

方括弧也可以用來將類型指派給變數 (例如, $A=[XML] "<Test><A>value</A></Test>") 。 下列變數類型可供使用:、、、、、、、、、、、、、、、、、、 Array Bool Byte Char Char[] Decimal Double Float Int Int[] Long Long[] RegEx Single ScriptBlock String TypeXML.

{ } 大括弧是用來包含命令中的運算式。 例如,Get-Process | {$ _ 。HandleCount-gt 400}
| 當一個 Cmdlet 將結果輸送到另一個 Cmdlet 時,會使用直立線符號。 例如,Get-Mailbox 伺服器 SRV1 | Set-Mailbox-ProhibitSendQuota 2GB。
> 右角括弧用來將命令的輸出傳送到檔案,並會覆寫檔案的內容。 例如,Get-TransportRulePredicate > "C:\My Documents\Output.txt"
>> 雙右角括弧用來將命令的輸出,附加至現有的檔案。 如果檔案不存在,則會建立新檔案。 例如,Get-TransportRulePredicate >> "C:\My Documents\Output.txt"
" 雙引號用來括住包含空格的文字字串。
$ 錢幣符號表示變數。 例如,將 $Blue = 10 值指派 10 給變數 $Blue
@ @ 符號會參照關聯陣列。 如需詳細資訊,請參閱 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 Cmdlet 的速記。 例如, Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name} is the same as Import-Csv C:\MyFile.csv | % {Set-Mailbox $_.Identity -Name $_.Name}
? 問號字元是 Where-Object Cmdlet 的簡寫。 例如, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} is the same as Get-Alias | ? {$_.Definition -eq "Clear-Host"}