如何在 Exchange 管理命令介面中修改傳輸規則條件與例外狀況
適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
上次修改主題的時間: 2007-03-20
本主題說明如何使用 Exchange 管理命令介面,在已安裝 Microsoft Exchange Server 2007 Hub Transport server role 或 Edge Transport server role 之電腦上,修改現有設定之傳輸規則的條件與例外狀況。
如需傳輸規則代理程式的相關資訊,請參閱傳輸規則的概觀。
開始之前
執行下列程序之前,請先參閱如何修改傳輸規則,其中提供修改傳輸規則條件與例外狀況所需的重要資訊。
若要執行這些程序,您使用的帳戶必須已委派下列資格:
- Exchange 組織系統管理員角色
若要在已安裝 Edge Transport server role 的電腦上執行下列程序,則必須使用該電腦之本機 Administrators 群組成員的帳戶進行登入。
如需管理 Exchange Server 2007 所需之權限、委派角色以及權利的相關資訊,請參閱權限考量。
若要執行這些程序,您必須熟悉下列概念:
如需 Exchange 管理命令介面的相關資訊,請參閱使用 Exchange 管理命令介面。
修改傳輸規則上的條件或例外狀況
在傳輸規則上修改條件與例外狀況的程序非常類似,因為條件與例外狀況使用相同的基礎傳輸規則述詞。本主題中說明的程序使用傳輸規則條件作為範例,但您也可以將這些程序套用到傳輸規則例外狀況。若要使用下列規則修改傳輸規則例外狀況,請將 Conditions
變更為 Exceptions
。請考慮下列範例:
若要存取傳輸規則上的條件,請使用下列命令:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
若要存取傳輸規則上的例外狀況,請使用下列命令:
$ExceptionArray = (Get-TransportRule "Test Rule").Exceptions
將條件新增到傳輸規則
首先,必須保留現有條件。接著,將條件陣列中的每個現有條件各指派到其變數。使用下列命令語法,以將條件陣列指派給變數:
$ConditionArray = (Get-TransportRule "<rule name>").Conditions
將傳輸規則的條件指派到變數,並檢視陣列中的條件數目
執行下列命令,以將條件陣列指派到變數:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
執行下列命令,以檢視陣列中的條件數目:
$ConditionArray.Length
接著,將陣列中的每個條件指派到其變數。條件是採用陣列元素的格式,編號為 0
到 $Condition.Length - 1
。使用下列語法,可以將每個條件陣列元素指派到其變數:
$ExistingCondition<Array Element Number> = $ConditionArray[<Array Element Number>]
將每個條件陣列元素指派到其變數
執行下列命令:
$ExistingCondition0 = $ConditionArray[0] $ExistingCondition1 = $ConditionArray[1]
接著建立一或多個新條件。您不能使用已經套用到現有傳輸規則的條件。使用下列語法,可以將新條件指派到變數:
$NewCondition = Get-TransportRulePredicate <Predicate Name>
如需傳輸規則述詞的清單,請參閱傳輸規則述詞。
將新條件指派到新變數
執行下列命令:
$NewCondition = Get-TransportRulePredicate SubjectContains
將新條件指派到新變數後,請指派條件的值。使用下列命令,以指派新條件的值:
$NewCondition.<PredicateProperty> = <Single Value or Array of Values>
如需傳輸規則述詞內容及其值之預期格式的清單,請參閱傳輸規則述詞。
指派值到新的條件
執行下列命令:
$NewCondition.Words = @("Test Subject 1", "Test Subject 2")
建立好所有的新條件後,將所有條件套用到現有傳輸規則。使用下列命令語法,以修改傳輸規則:
Set-TransportRule <Transport Rule Name> -Condition @(<Conditions>)
附註: |
---|
在 Set-TransportRule 命令中指定現有條件與新條件時,必須根據條件的 Rank 來排序條件。使用 Get-TransportRulePredicate 命令可檢視每個條件或例外狀況的等級。 |
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Condition @($ExistingCondition0, $ExistingCondition1, $NewCondition)
從傳輸規則移除條件
若要從傳輸規則移除條件,請遵循本主題中前一節的步驟:
- 將傳輸規則的條件指派到變數,並檢視陣列中的條件數目。
- 將每個條件陣列元素指派到其變數,您要移除的條件除外。
- 修改現有的傳輸規則。
從傳輸規則移除條件
執行下列命令,以將條件陣列指派到變數:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
執行下列命令,以檢視陣列中的條件數目:
$ConditionArray.Length
執行下列命令以檢視
$ConditionArray
變數中的條件,並記下您要移除之條件的陣列元素號碼:$ConditionArray
執行下列命令以將您要保留的條件指派到變數,但略過不要保留之條件的陣列元素:
$ExistingCondition1 = $Condition[1] ...
執行下列命令以修改傳輸規則,但只指派與您要保留之條件相關的變數:
Set-TransportRule "Test Rule" -Condition @($ExistingCondition1)
修改傳輸規則上現有條件的值
修改條件的程序取決於條件是接受單一值還是多個值。請遵循適用於您要修改之條件類型的程序。
若要判定您要修改之條件的類型,請參閱傳輸規則述詞。
修改現有的單一值條件
首先,必須將現有傳輸規則的條件指派到變數,以及檢視陣列。使用下列命令語法:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
將傳輸規則的條件指派到變數,並檢視陣列中的條件數目
執行下列命令,以將條件陣列指派到變數:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
執行下列命令,以檢視陣列中的條件:
$ConditionArray
判定要修改的條件,並記下它的陣列元素號碼。請參閱本主題稍後的<新增值到現有多值條件>,找出正確的陣列元素號碼。
判定陣列元素號碼後,使用下列命令語法將新值指派到該條件:
$ConditionArray[<array element number>].<Predicate Property> = <Single Value>
指派值給陣列元素號碼為 2 的 WithImportance 條件
執行下列命令:
$ConditionArray[2].Importance = "High"
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Condition $ConditionArray
附註: |
---|
因為 $ConditionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ConditionArray 變數。 |
將值新增到現有的多值條件中
首先,您必須將現有傳輸規則的條件指派到變數,並檢視陣列。使用下列命令語法:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
將傳輸規則的條件指派到變數,並檢視陣列中的條件數目
執行下列命令,以將條件陣列指派到變數:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
執行下列命令,以檢視陣列中的條件:
$ConditionArray
判定要修改的條件,並記下它的陣列元素號碼。陣列中的第一個條件為陣列元素 0
。如果想要修改的條件是清單中的第三個條件,則陣列元素號碼為 2
。您必須判定條件的一或多個述詞內容。條件的述詞內容永遠都緊接在以 LinkedDisplayTextException
開頭的那行之前列出,如下列範例所示:
Addresses : {Kim Akers}
LinkedDisplayTextException : except if from <a id="Addresses">people</a>
Name : From
Rank : 0
LinkedDisplayText : from <a id="Addresses">people</a>
Words : {Corporate Communication, Message from VP, Sales Quotas}
LinkedDisplayTextException : except if with <a id="Words">specific words</a> in the subject
Name : SubjectContains
Rank : 15
LinkedDisplayText : with <a id="Words">specific words</a> in the subject
在此範例中,第一個條件 (陣列元素 0
) 的述詞內容為 Addresses
。第二個條件 (陣列元素 1
) 的述詞內容為 Words
。
若要新增值到現有條件,請使用下列命令語法:
$ConditionArray[<Array Element Number>].<Predicate Property> += <Array of Values>
如需傳輸規則述詞內容及其值之預期格式的清單,請參閱傳輸規則述詞。
新增值到範例之陣列元素 1 處的現有條件
執行下列命令:
$ConditionArray[1].Words += @("Industry Projections", "Sales Forecast")
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Condition $ConditionArray
附註: |
---|
因為 $ConditionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ConditionArray 變數。 |
從現有多值條件移除值
若要從現有條件移除值,則必須記下現有值,再將現有值重新輸入到條件中,但略過不再需要的值。執行下列程序時,請以您指定的值取代現有的值。
附註: |
---|
下列程序適合只設定了幾個值的條件。對於設定了數十或數百個值的條件,此程序就不合適。萬一手動重新指派值給條件有困難,建議您使用 foreach 迴圈。如需相關資訊,請參閱使用 Exchange 管理命令介面。 |
首先,您必須將現有傳輸規則的條件指派到變數,並檢視陣列。使用下列命令語法:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
將傳輸規則的條件指派到變數,並檢視陣列中的條件數目
執行下列命令,以將條件陣列指派到變數:
$ConditionArray = (Get-TransportRule "Test Rule").Conditions
執行下列命令,以檢視陣列中的條件:
$ConditionArray
接著檢視您要修改之條件的值,並以您要保留的值取代該條件的值。如需如何判定條件陣列之元素號碼與述詞內容的相關資訊,請參閱本主題前面的<新增值到現有多值條件>。使用下列命令語法:
$ConditionArray[<Array Element Number>]
接著以您要保留的值取代您要修改之條件的現有值。使用下列命令語法:
$ConditionArray[<Array Element Number>].<Predicate Property> = <Array of Values>
如需傳輸規則述詞內容及其值之預期格式的清單,請參閱傳輸規則述詞。
從上一個範例之陣列元素 1 處的現有條件移除值
執行下列命令以檢視條件上目前設定的值:
$ConditionArray[1]
執行下列命令,以想要的值取代目前的值:
$ConditionArray[1].Words = @("Corporate Communication", "Sales Quotas")
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Condition $ConditionArray
附註: |
---|
因為 $ConditionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ConditionArray 變數。 |
相關資訊
如需各命令的詳細語法及參數的資訊,請參閱下列主題:
如需傳輸規則的相關資訊,請參閱下列主題:
若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.