如何在 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
將傳輸規則的動作指派給變數,並檢視陣列中的動作數目
執行下列命令,以將動作陣列指派到變數:
$ActionArray = (Get-TransportRule "Test Rule").Actions
執行下列命令,以檢視陣列中的動作數目:
$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>)
附註: |
---|
當您在 Set-TransportRule 命令中指定動作時,必須根據動作的 Rank 來排序現有動作及新動作。使用 Get-TransportRuleAction 命令來檢視每個動作的順位。 |
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Action @($ExistingAction0, $ExistingAction1, $NewAction)
從傳輸規則移除動作
若要從傳輸規則移除動作,請遵循本主題稍早章節中的下列步驟:
- 將傳輸規則的動作指派給變數,並檢視陣列中的動作數目。
- 除了您要移除的動作之外,將每個動作陣列元素指派給其本身的變數。
- 修改現有的傳輸規則。
從傳輸規則移除動作
執行下列命令,以將動作陣列指派到變數:
$ActionArray = (Get-TransportRule "Test Rule").Actions
執行下列命令,以檢視陣列中的動作數目:
$ActionArray.Length
執行下列命令以檢視
$ActionArray
變數的動作,並記下您要移除之動作的陣列元素號碼:$ActionArray
執行下列命令,指派您要保留的動作給變數,省略您不要保留的動作陣列元素:
$ExistingAction1 = $Action[1] ...
執行下列命令修改傳輸規則,只指派與您要保留之動作關聯的變數:
Set-TransportRule "Test Rule" -Action @($ExistingAction1)
修改傳輸規則中現有動作的值
修改動作的程序取決於動作是接受單一值還是多個值。請遵循適用於您要修改之動作類型的程序。
附註: |
---|
以下範例會使用可在 Hub Transport Server 上使用的傳輸規則動作。 |
若要判定您要修改之動作的類型,請參閱傳輸規則動作。
修改現有的單一值動作
首先,將現有傳輸規則的動作指派給變數,並檢視陣列。使用下列命令語法:
$ActionArray = (Get-TransportRule "Test Rule").Actions
將傳輸規則的動作指派給變數,並檢視陣列中的動作數目
執行下列命令,以將動作陣列指派到變數:
$ActionArray = (Get-TransportRule "Test Rule").Actions
執行下列命令,檢視陣列中的動作:
$ActionArray
決定想要修改的動作,並記下它的陣列元素號碼。陣列中的第一個動作會位於陣列元素 0
。如果您要修改的動作是清單中的第三個動作,其陣列元素號碼為 2
。接著必須決定動作的一個或多個內容。動作內容一律列在以 Name
為開頭的行前面。
判定陣列元素號碼後,使用下列命令語法將新值指派給該動作:
$ActionArray[<array element number>].<Action Property> = <Single Value>
如需傳輸規則動作內容及其值之預期格式的清單,請參閱傳輸規則動作。
將值指派給位於陣列元素 2 的 SetScl 動作
執行下列命令:
$ActionArray[2].SclValue = "7"
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Action $ActionArray
附註: |
---|
因為 $ActionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ActionArray 變數。 |
將值新增到現有的多值動作中
首先,您必須將現有傳輸規則的動作指派到變數,並檢視陣列。使用下列命令語法:
$ActionArray = (Get-TransportRule "Test Rule").Actions
將傳輸規則的動作指派給變數,並檢視陣列中的動作數目
執行下列命令,以將動作陣列指派到變數:
$ActionArray = (Get-TransportRule "Test Rule").Actions
執行下列命令,檢視陣列中的動作:
$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
) 的動作內容為 RejectReason
和 EnhancedStatusCode
。
若要在現有動作中新增值,請使用下列命令語法:
$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
附註: |
---|
因為 $ActionArray 變數已經在陣列中,所以您不需要在陣列中插入 $ActionArray 變數。 |
從現有多值動作移除值
若要從現有動作移除值,您必須記下現有值,略過不再需要的值後,再將現有值重新輸入到動作中。執行下列程序時,請以您指定的值取代現有的值。
附註: |
---|
下列程序適合只設定少數值的動作。對於已設定數十或數百個值的動作,此程序就不合適。當手動重新指派值給動作有困難時,建議您使用 ForEach 迴圈。如需相關資訊,請參閱使用 Exchange 管理命令介面。 |
首先,您必須將現有傳輸規則的動作指派到變數,並檢視陣列。使用下列命令語法:
$ActionArray = (Get-TransportRule "Test Rule").Actions
將傳輸規則的動作指派給變數,並檢視陣列中的動作數目
執行下列命令,以將動作陣列指派到變數:
$ActionArray = (Get-TransportRule "Test Rule").Actions
執行下列命令,檢視陣列中的動作:
$ActionArray
接著檢視您要修改的動作值,並以您要保留的值取代該動作的值。如需如何判定動作陣列之元素號碼與動作內容的相關資訊,請參閱本主題前面的<將值新增到現有的多值動作中>。使用下列命令語法:
$ActionArray[<Array Element Number>]
接著以您要保留的值取代您要修改之動作的現有值。使用下列命令語法:
$ActionArray[<Array Element Number>].<Action Property> = <Array of Values>
如需傳輸規則動作內容及其值之預期格式的清單,請參閱傳輸規則述詞。
從上一個範例之陣列元素 0 處的現有動作移除值
執行下列命令,以檢視動作上目前設定的值:
$ActionArray[0]
執行下列命令,以想要的值取代目前的值:
$ActionArray[0].Addresses = @((Get-Mailbox "Kim Akers"),(Get-Mailbox "Frank Lee"))
修改現有的傳輸規則
執行下列命令:
Set-TransportRule "Test Rule" -Action $ActionArray
附註: 因為 $ActionArray
變數已經在陣列中,所以您不需要在陣列中插入$ActionArray
變數。
相關資訊
如需各命令的詳細語法及參數的資訊,請參閱下列主題:
如需傳輸規則的相關資訊,請參閱下列主題:
若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.