語法

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2007-02-08

本主題說明如何讀取 Exchange 說明文件中的 Exchange 管理命令介面參數集和範例,以及如何格式化命令,使 Exchange 管理命令介面可處理該命令。在 Exchange 管理命令介面中,參數集是顯示在指令程式說明主題的<使用>一節中。在 Microsoft Exchange Server 2007 說明檔案中,參數集是顯示在指令程式說明主題的<語法>一節中。

如需指令程式說明的相關資訊,請參閱取得說明

Exchange 管理命令介面中的命令慣例

Exchange 管理命令介面會遵循數種命令慣例,幫助您了解在執行命令時哪些為必要資訊、哪些為選用資訊,以及您應如何呈現參數及其值。請參閱本主題稍後的<參數集>一節,以取得 Exchange 管理命令介面說明中如何呈現參數集,以及 Exchange 2007 說明檔案的範例。

表 1 列出這些命令慣例。

表 1   Exchange 管理命令介面命令慣例

符號 描述

-

連字號表示命令列上的下一個字是一個參數。最常見的參數是 Identity。如需參數的相關資訊,請參閱參數

< >

角括弧是用來含括參數值。這些值可以是選項或名稱。例如,在 -Parameter1 <1 | 2 | 3> 中,數字代表特定值選項。在 -Parameter2 <ServerName> 中,ServerName 代表實際值。

[ ]

方括弧 ([ ]) 是用來含括選用的參數及其值。不包含在方括弧內的參數及其值是必要的。

|

當管線符號使用於參數值清單時 (例如 -Parameter1 <1 | 2 | 3>),會指出可用值之間的選擇。此慣例適用於 System.Enum 參數及 System.Boolean 參數。

這些命令慣例可協助您了解應如何建構命令。當您在命令列上輸入命令時,不必輸入這些慣例。

參數集

在 Exchange 說明文件中,所有的指令程式都會在參數集內顯示其相關參數。參數集是可一起使用的參數群組。存在於一個參數集內但不存在於另一個參數集內的參數是互斥的。它們不能一起使用。

雖然所有的指令程式都有參數集,但許多指令程式只有一個參數集。這表示該指令程式上的所有參數可以一起使用。其他的指令程式可能會有數個參數集。下列範例會顯示 New-SystemMessage 指令程式上可用的參數集:

New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <$true | $false>
-Language <CultureInfo> -Text <String> [-DomainController <String>] [-Templ
ateInstance <MshObject>]

New-SystemMessage -Language <CultureInfo> -QuotaMessageType <WarningMailbox
UnlimitedSize | WarningPublicFolderUnlimitedSize | WarningMailbox | Warning
PublicFolder | ProhibitSendMailbox | ProhibitPostPublicFolder | ProhibitSen
dReceiveMailBox> -Text <String> [-DomainController <String>] [-TemplateInst
ance <MshObject>]

New-SystemMessage 指令程式有兩個參數集。第一個參數集包含 DsnCode 參數及 Internal 參數,第二個參數集則包含 QuotaMessageType 參數。這表示 DsnCode 參數及 Internal 參數可以一起使用。但它們不能與 QuotaMessageType 參數一起使用。其餘參數 (LanguageTextDomainControllerTemplateInstance) 則同時列在這兩個參數集中。這表示它們可以與 DsnCode 參數和 Internal 參數,並和 QuotaMessageType 參數一起使用。

參數集可指出單一指令程式可以有多個用途。例如,您可以使用 New-SystemMessage 指令程式,來設定自訂傳遞狀態通知 (DSN) 郵件,或設定自訂信箱配額限制郵件。不過,指令程式通常有數個參數集,因為一個參數可能會執行與另一個參數不相容的功能。例如,下列範例會顯示 New-AddressList 指令程式的參數集:

New-AddressList -Name <String> [-Company <MultiValuedProperty>] [-Container
 <AddressListIdParameter>] [-Department <MultiValuedProperty>] [-DisplayNam
e <String>] [-DomainController <String>] [-IncludedRecipients <Nullable>] [
-StateOrProvince <MultiValuedProperty>] [-TemplateInstance <MshObject>]

New-AddressList -Name <String> [-Container <AddressListIdParameter>] [-Disp
layName <String>] [-DomainController <String>] [-RecipientFilter <String>]
[-TemplateInstance <MshObject>] 

New-AddressList 指令程式中,第一個參數集列出的參數可讓您建立新的通訊清單,而這份清單是以對 CompanyDepartmentIncludedRecipientsStateOrProvice 參數提供的值為基礎。不過,您也可以使用以 RecipientFilter 參數指定的自訂篩選器,來建立新的通訊清單。當您建立新的通訊清單時,使用 RecipientFilter 參數指定的自訂篩選器,會覆寫使用第一個參數集內之參數所設定的條件。因此,RecipientFilter 參數會放在它自己的參數集內。Exchange 2007 不容許您在相同命令列上指定這兩個參數。如同 New-SystemMessage 指令程式,同時存在於 New-AddressList 指令程式中之這兩個參數集內的其餘參數可任意組合使用。

引號的使用

將含空格的值傳遞給參數時,最常使用雙引號 ( " ) 來括住該值。例如,若要將 Contoso Receive Connector 傳遞給 Set-ReceiveConnector 指令程式的 Name 參數,則必須以引號括住 Contoso Receive Connector,如下列範例所示:

Set-ReceiveConnector -Name "Contoso Receive Connector"

若不以引號括住字串,則 Exchange 管理命令介面會嘗試將字串中的每個字解譯為命令列上的新引數,而顯示錯誤。

在 Exchange 管理命令介面中,雙引號與單引號 ( ' ) 具有不同的意義。以雙引號括住字串時,Exchange 管理命令介面會以符合的值取代任何變數。例如,假設將 ServerName 這個值指派給變數 $Server。接著,假設在命令列上輸入下列命令:

"$Server Example"

就會顯示下列輸出:

ServerName Example

變數 $Server 在輸出中會被值 ServerName 所取代。

以單引號括住字串時,Exchange 管理命令介面不會嘗試以符合的值取代變數。假設仍將值 ServerName 指派給變數 $Server 。接著,假設在命令列上輸入下列命令:

'$Server-Example'

就會顯示下列輸出:

$Server-Example

Exchange 管理命令介面不會解譯以單引號括住之文字中所含的變數,因此不會以值取代變數 $Server

如需變數的相關資訊,請參閱使用者定義的變數命令介面變數

您可能也會想要顯示一些字元,例如貨幣符號 ( )、雙引號或單引號,或是反引號 ( )。這些字元用於 Exchange 管理命令介面中時,具有特別的意義。若要指示 Exchange 管理命令介面在雙引號括住的字串中含有這些字元時不要解譯這些字元並加以顯示,則必須使用反引號跳出字元 ( ` )。例如,在命令列上輸入下列文字:

"The price is `$23."

就會顯示下列輸出:

The price is $23.

由於我們配合貨幣符號 ( ) 使用反引號跳出字元,Exchange 管理命令介面不會將 $ 解譯為變數開頭。

若以單引號括住字串,則不必為任何字元加上跳出字元,除非您要顯示字串中的單引號。若要顯示以單引號括住之字串中的單引號,必須使用兩個單引號 ( '' )。例如,在命令列上輸入下列文字:

'Don''t confuse two single quotation marks with a double quotation mark!'

就會顯示下列輸出:

Don't confuse two single quotation marks with a double quotation mark!

Exchange 管理命令介面中的命令運算子

當您在 Exchange 管理命令介面中輸入命令時,可使用表 2 中的運算子。有些運算子可能符合先前提到的一些命令慣例。但在命令列上輸入它們時,它們代表的意義並不相同。表 2 會顯示您可在命令中使用的有效運算子。

表 2   Exchange 管理命令介面命令運算子

運算子 描述

=

等號是作為指派字元使用。等號右邊的值是指派給等號左邊的變數。下列字元也是指派字元:

  • +=   將等號右邊的值加到包含於等號左邊變數中的目前值。

  • -=   將等號左邊變數中所包含的目前值減去等號右邊的值。

  • *=   將等號左邊中變數的目前值乘以等號右邊中指定的值。

  • /=   將等號左邊中變數的目前值除以等號右邊中指定的值。

  • %=   以等號右邊中指定的值來修改等號左邊中變數的目前值。

:

冒號可用來分隔參數名稱和參數值,如下例所示:-Enabled:$True。除了切換參數之外,在所有參數類型中冒號的使用都是選用的。如需切換參數的相關資訊,請參閱參數

!

驚嘆號是邏輯 NOT 運算子。與等號 () 一起使用時,這對組合表示「不等於」。

[ ]

方括弧是用來指定陣列位置的索引值。例如,$Red[9] 會參照 $Red 陣列中的第十個索引位置。它參照第十個索引位置,是因為陣列索引是從零開始 (0)。

方括弧也可以用來指派類型給變數,如下例所示: $A=[XML] "<Test><A>value</A></Test>"。以下為有效類型:ArrayBoolByteCharChar[]DecimalDoubleFloatIntInt[]LongLong[]RegExSingleScriptBlockStringTypeXML.

{ }

大括弧是用來包含命令中的運算式,如下例所示: Get-Process | Where { $_.HandleCount -gt 400 }

|

當一個指令程式以管線將結果傳輸至另一個指令程式時,會使用管線符號。例如,下列命令會以管線將 Get-Mailbox 指令程式的結果傳輸至 Move-Mailbox 指令程式: Get-Mailbox -Server SRV1 | Move-Mailbox -TargetDatabase SRV2

>

右角括弧是用來傳送命令的輸出至檔案,如下例所示:Get-TransportRulePredicate > c:\out.txt。目的地檔案會遭到覆寫。

>>

雙右角括弧是用來將命令輸出附加至檔案 (如果檔案存在)。如果檔案不存在,即會建立新檔案。以下是如何使用雙右角括弧的範例: Get-TransportRulePredicate >>c:\out.txt

" "

引號是用來含括有空格的字串。

$

錢幣符號表示變數。例如,$Blue = 10 會將 10 這個值指派給變數 $Blue

@

@ 符號會參照關聯陣列。如需相關資訊,請參閱陣列

$( )

加上括弧的錢幣符號 ($) 代表命令替換。當您想要使用一個命令的輸出作為另一個命令的引數時,可使用命令替換,如下例所示: Get-ChildItem $(Read-Host -Prompt "Enter FileName: ")

..

雙句點表示值範圍。例如,如果陣列包含數個索引,您可以指定下列命令,來傳回第二個和第五個索引之間所有索引的值,如下例如示: $Blue[2..5]

+

+ 運算子會將兩值加在一起。例如,6 + 6 等於 12

-

- 運算子會從一個值減去另一個值。例如,12 - 6 等於 6

- 運算子也可用來代表負數,例如 -6。例如,-6 * 6 等於 -36

*

萬用字元具有數種意義。您可以使用萬用字元,來比對字串、乘以數值,或者,如果字串和數值一起使用,還可以重複字串值達到該數值指定的次數,如下例所示:"Test" * 3 等於 TestTestTest

/

/ 運算子可將一值除以另一值。例如,6 / 6 等於 1

%

% 運算子可從除法運算子傳回餘數。例如,, 6 % 4 等於 2