如何在 Exchange 管理命令介面中修改傳輸規則動作

 

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

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

本主題說明如何使用 Exchange 管理命令介面,在已安裝 Microsoft Exchange Server 2007 Hub Transport server role 或 Edge Transport server role 的電腦上,修改其中設定之現有傳輸規則上的動作。

如需傳輸規則代理程式的相關資訊,請參閱傳輸規則的概觀

開始之前

執行下列程序前,請先參閱如何修改傳輸規則,其中提供修改傳輸規則動作所需的重要資訊。

若要執行這些程序,必須對您使用的帳戶委派下列項目:

  • Exchange 組織系統管理員角色

若要在已安裝 Edge Transport server role 的電腦上執行下列程序,則必須使用該電腦之本機 Administrators 群組成員的帳戶進行登入。

如需管理 Exchange 2007 所需之權限、委派角色及權利的相關資訊,請參閱權限考量

若要執行這些程序,您必須熟悉下列概念:

如需 Exchange 管理命令介面的相關資訊,請參閱使用 Exchange 管理命令介面

修改傳輸規則中的動作

將動作新增到傳輸規則

首先,您必須保留現有的動作。將動作陣列中每個現有動作指派給其本身的變數。使用下列命令語法,將動作陣列指派給變數:

$ActionArray = (Get-TransportRule "<rule name>").Actions

將傳輸規則的動作指派給變數,並檢視陣列中的動作數目

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

    $ActionArray = (Get-TransportRule "Test Rule").Actions
    
  2. 執行下列命令,以檢視陣列中的動作數目:

    $ActionArray.Length
    

接著將陣列中每個動作指派給其本身的變數。動作位於陣列元素內,並從 0$ActionArray.Length - 1 予以編號。使用下列語法,將每個動作陣列元素指派給其本身的變數:

$ExistingAction<Array Element Number> = $ActionArray[<Array Element Number>]

將每個動作陣列元素指派給其本身的變數

  • 執行下列命令:

    $ExistingAction0 = $ActionArray[0]
    $ExistingAction1 = $ActionArray[1]
    

接著建立一個或多個新動作。您無法使用已套用到現有傳輸規則的動作。使用下列語法,將新動作指派給變數:

$NewAction = Get-TransportRuleAction <Action Name>

如需傳輸規則動作的清單,請參閱傳輸規則動作

指派新動作給新變數

  • 執行下列命令:

    $NewAction = Get-TransportRuleAction LogEvent
    

指派新動作給新變數後,請指派值給動作。使用下列命令,將值指派給新動作:

$NewAction.<ActionProperty> = <Single Value or Array of Values>

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

指派值給新動作

  • 執行下列命令:

    $NewAction.LogMessage = "Transport Rule triggered"
    

建立所有的新動作後,請將動作套用到現有的傳輸規則。使用下列命令語法,以修改傳輸規則:

Set-TransportRule <Transport Rule Name> -Action @(<Actions>)
note附註:
當您在 Set-TransportRule 命令中指定動作時,必須根據動作的 Rank 來排序現有動作及新動作。使用 Get-TransportRuleAction 命令來檢視每個動作的順位。

修改現有的傳輸規則

  • 執行下列命令:

    Set-TransportRule "Test Rule" -Action @($ExistingAction0, $ExistingAction1, $NewAction)
    

從傳輸規則移除動作

若要從傳輸規則移除動作,請遵循本主題稍早章節中的下列步驟:

  1. 將傳輸規則的動作指派給變數,並檢視陣列中的動作數目。
  2. 除了您要移除的動作之外,將每個動作陣列元素指派給其本身的變數。
  3. 修改現有的傳輸規則。

從傳輸規則移除動作

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

    $ActionArray = (Get-TransportRule "Test Rule").Actions
    
  2. 執行下列命令,以檢視陣列中的動作數目:

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

    $ActionArray
    
  4. 執行下列命令,指派您要保留的動作給變數,省略您不要保留的動作陣列元素:

    $ExistingAction1 = $Action[1]
    ...
    
  5. 執行下列命令修改傳輸規則,只指派與您要保留之動作關聯的變數:

    Set-TransportRule "Test Rule" -Action @($ExistingAction1)
    

修改傳輸規則中現有動作的值

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

note附註:
以下範例會使用可在 Hub Transport Server 上使用的傳輸規則動作。

若要判定您要修改之動作的類型,請參閱傳輸規則動作

修改現有的單一值動作

首先,將現有傳輸規則的動作指派給變數,並檢視陣列。使用下列命令語法:

$ActionArray = (Get-TransportRule "Test Rule").Actions

將傳輸規則的動作指派給變數,並檢視陣列中的動作數目

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

    $ActionArray = (Get-TransportRule "Test Rule").Actions
    
  2. 執行下列命令,檢視陣列中的動作:

    $ActionArray
    

決定想要修改的動作,並記下它的陣列元素號碼。陣列中的第一個動作會位於陣列元素 0。如果您要修改的動作是清單中的第三個動作,其陣列元素號碼為 2。接著必須決定動作的一個或多個內容。動作內容一律列在以 Name 為開頭的行前面。

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

$ActionArray[<array element number>].<Action Property> = <Single Value>

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

將值指派給位於陣列元素 2 的 SetScl 動作

  • 執行下列命令:

    $ActionArray[2].SclValue = "7"
    

修改現有的傳輸規則

  • 執行下列命令:

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

將值新增到現有的多值動作中

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

$ActionArray = (Get-TransportRule "Test Rule").Actions

將傳輸規則的動作指派給變數,並檢視陣列中的動作數目

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

    $ActionArray = (Get-TransportRule "Test Rule").Actions
    
  2. 執行下列命令,檢視陣列中的動作:

    $ActionArray
    

決定想要修改的動作,並記下它的陣列元素號碼。陣列中的第一個動作會位於陣列元素 0。如果您要修改的動作是清單中的第三個動作,其陣列元素號碼為 2。接著,您必須決定動作的一或多個動作內容。動作的動作內容永遠都會緊接著在以 Name 開頭的那行之前列出,如下例所示:

Addresses         : {Legal Group, Regulatory Compliance}
Name              : RedirectMessage
Rank              : 10
LinkedDisplayText : redirect the message to <a id="Addresses">addresses</a>

RejectReason       : Example Message
EnhancedStatusCode : 5.7.1
Name               : RejectMessage
Rank               : 11
LinkedDisplayText  : send <a id="RejectReason">bounce message</a> to sender with <a id ="EnhancedStatusCode">enhanced status code</a>

在此範例中,第一個動作 (位於陣列元素 0) 的動作內容為 Addresses。第二個動作 (位於陣列元素 1) 的動作內容為 RejectReasonEnhancedStatusCode

若要在現有動作中新增值,請使用下列命令語法:

$ActionArray[<Array Element Number>].<Action Property> += <Array of Values>

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

將值新增到範例之陣列元素 0 處的現有動作

  • 執行下列命令:

    $ActionArray[0].Addresses += @((Get-DistributionGroup "Example Group 1"), (Get-DistributionGroup "Example Group 2))
    

修改現有的傳輸規則

  • 執行下列命令:

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

從現有多值動作移除值

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

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

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

$ActionArray = (Get-TransportRule "Test Rule").Actions

將傳輸規則的動作指派給變數,並檢視陣列中的動作數目

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

    $ActionArray = (Get-TransportRule "Test Rule").Actions
    
  2. 執行下列命令,檢視陣列中的動作:

    $ActionArray
    

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

$ActionArray[<Array Element Number>]

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

$ActionArray[<Array Element Number>].<Action Property> = <Array of Values>

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

從上一個範例之陣列元素 0 處的現有動作移除值

  1. 執行下列命令,以檢視動作上目前設定的值:

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

    $ActionArray[0].Addresses = @((Get-Mailbox "Kim Akers"),(Get-Mailbox "Frank Lee"))
    

修改現有的傳輸規則

  • 執行下列命令:

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

相關資訊

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

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

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