如何在 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

將傳輸規則的條件指派到變數,並檢視陣列中的條件數目

  1. 執行下列命令,以將條件陣列指派到變數:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. 執行下列命令,以檢視陣列中的條件數目:

    $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>)
note附註:
Set-TransportRule 命令中指定現有條件與新條件時,必須根據條件的 Rank 來排序條件。使用 Get-TransportRulePredicate 命令可檢視每個條件或例外狀況的等級。

修改現有的傳輸規則

  • 執行下列命令:

    Set-TransportRule "Test Rule" -Condition @($ExistingCondition0, $ExistingCondition1, $NewCondition)
    

從傳輸規則移除條件

若要從傳輸規則移除條件,請遵循本主題中前一節的步驟:

  1. 將傳輸規則的條件指派到變數,並檢視陣列中的條件數目。
  2. 將每個條件陣列元素指派到其變數,您要移除的條件除外。
  3. 修改現有的傳輸規則。

從傳輸規則移除條件

  1. 執行下列命令,以將條件陣列指派到變數:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. 執行下列命令,以檢視陣列中的條件數目:

    $ConditionArray.Length
    
  3. 執行下列命令以檢視 $ConditionArray 變數中的條件,並記下您要移除之條件的陣列元素號碼:

    $ConditionArray
    
  4. 執行下列命令以將您要保留的條件指派到變數,但略過不要保留之條件的陣列元素:

    $ExistingCondition1 = $Condition[1]
    ...
    
  5. 執行下列命令以修改傳輸規則,但只指派與您要保留之條件相關的變數:

    Set-TransportRule "Test Rule" -Condition @($ExistingCondition1)
    

修改傳輸規則上現有條件的值

修改條件的程序取決於條件是接受單一值還是多個值。請遵循適用於您要修改之條件類型的程序。

若要判定您要修改之條件的類型,請參閱傳輸規則述詞

修改現有的單一值條件

首先,必須將現有傳輸規則的條件指派到變數,以及檢視陣列。使用下列命令語法:

$ConditionArray = (Get-TransportRule "Test Rule").Conditions

將傳輸規則的條件指派到變數,並檢視陣列中的條件數目

  1. 執行下列命令,以將條件陣列指派到變數:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. 執行下列命令,以檢視陣列中的條件:

    $ConditionArray
    

判定要修改的條件,並記下它的陣列元素號碼。請參閱本主題稍後的<新增值到現有多值條件>,找出正確的陣列元素號碼。

判定陣列元素號碼後,使用下列命令語法將新值指派到該條件:

$ConditionArray[<array element number>].<Predicate Property> = <Single Value>

指派值給陣列元素號碼為 2 的 WithImportance 條件

  • 執行下列命令:

    $ConditionArray[2].Importance = "High"
    

修改現有的傳輸規則

  • 執行下列命令:

    Set-TransportRule "Test Rule" -Condition $ConditionArray
    
note附註:
因為 $ConditionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ConditionArray 變數。

將值新增到現有的多值條件中

首先,您必須將現有傳輸規則的條件指派到變數,並檢視陣列。使用下列命令語法:

$ConditionArray = (Get-TransportRule "Test Rule").Conditions

將傳輸規則的條件指派到變數,並檢視陣列中的條件數目

  1. 執行下列命令,以將條件陣列指派到變數:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. 執行下列命令,以檢視陣列中的條件:

    $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
    
note附註:
因為 $ConditionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ConditionArray 變數。

從現有多值條件移除值

若要從現有條件移除值,則必須記下現有值,再將現有值重新輸入到條件中,但略過不再需要的值。執行下列程序時,請以您指定的值取代現有的值。

note附註:
下列程序適合只設定了幾個值的條件。對於設定了數十或數百個值的條件,此程序就不合適。萬一手動重新指派值給條件有困難,建議您使用 foreach 迴圈。
如需相關資訊,請參閱使用 Exchange 管理命令介面

首先,您必須將現有傳輸規則的條件指派到變數,並檢視陣列。使用下列命令語法:

$ConditionArray = (Get-TransportRule "Test Rule").Conditions

將傳輸規則的條件指派到變數,並檢視陣列中的條件數目

  1. 執行下列命令,以將條件陣列指派到變數:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. 執行下列命令,以檢視陣列中的條件:

    $ConditionArray
    

接著檢視您要修改之條件的值,並以您要保留的值取代該條件的值。如需如何判定條件陣列之元素號碼與述詞內容的相關資訊,請參閱本主題前面的<新增值到現有多值條件>。使用下列命令語法:

$ConditionArray[<Array Element Number>]

接著以您要保留的值取代您要修改之條件的現有值。使用下列命令語法:

$ConditionArray[<Array Element Number>].<Predicate Property> = <Array of Values>

如需傳輸規則述詞內容及其值之預期格式的清單,請參閱傳輸規則述詞

從上一個範例之陣列元素 1 處的現有條件移除值

  1. 執行下列命令以檢視條件上目前設定的值:

    $ConditionArray[1]
    
  2. 執行下列命令,以想要的值取代目前的值:

    $ConditionArray[1].Words = @("Corporate Communication", "Sales Quotas")
    

修改現有的傳輸規則

  • 執行下列命令:

    Set-TransportRule "Test Rule" -Condition $ConditionArray
    
note附註:
因為 $ConditionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ConditionArray 變數。

相關資訊

如需各命令的詳細語法及參數的資訊,請參閱下列主題:

如需傳輸規則的相關資訊,請參閱下列主題:

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.