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 中執行 cmdlet 時,請勿使用這些符號,如表格中所述。
Exchange PowerShell 中的參數集
參數集是可在相同命令中,一起使用的參數群組。 每個參數集至少包含一個其他參數集中無法使用的參數,但參數集通常會共用一些參數。
許多 Cmdlet 只有一個參數集,這表示所有參數都可以相互搭配使用。 其他 Cmdlet 有數個參數集,這表示某些參數無法與其他參數搭配使用。 例如,假設在 New-SystemMessage Cmdlet 上有下列參數集可供使用︰
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>項目表示 Cmdlet 支援幾乎所有 cmd (let 上都提供的基本Windows PowerShell參數,例如詳細資訊) 。 您可以將通用參數與任何參數集中的參數搭配使用。 如需詳細資訊,請參閱 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 Example' 會產生
$Server Example。
如需變數的詳細資訊,請參閱 about_Variables 與 about_Automatic_Variables。
Exchange PowerShell 中的逸出字元
在任何程式語言中, 逸出字元 都是用來按字面意思識別特殊字元,而不是透過其在該語言中的正常功能來識別。 在 Exchange PowerShell 中,當您以雙引號括住文字字串時,逸出字元是 ' ) ( 的後引號逸出字元。
例如,如果您想要輸出 The price is $23,請輸入值「價格為 '$23」。 美元符號字元 ( $ ) 上需要逸出字元,因為 $ 會定義 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"。":使用雙引號括住包含空格的文字字串。 如前所述,變數會取代為實際值。$:貨幣符號代表變數。 例如,若要建立以值 10 命名$Blue的變數,請使用$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 cmdlet 的簡寫。 例如,
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 cmdlet 的簡寫。 例如,Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"}與Get-Alias | ? {$_.Definition -eq "Clear-Host"}.|
- 在數值評估中,它會從除法運算子傳回餘數。 例如,