Exchange 管理シェルでトランスポート ルールのアクションを変更する方法

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2007-08-27

ここでは、Exchange 管理シェルを使用して、Microsoft Exchange Server 2007 ハブ トランスポート サーバーの役割またはエッジ トランスポート サーバーの役割がインストールされているコンピュータで構成されている既存のトランスポート ルールのアクションを変更する方法について説明します。

トランスポート ルール エージェントの詳細については、「トランスポート ルールの概要」を参照してください。

開始する前に

以下の手順を実行する前に、トランスポート ルールのアクションを変更するために必要になる重要な情報が記載されている「トランスポート ルールを変更する方法」を参照してください。

この手順を実行するには、使用するアカウントに次の権限が委任されている必要があります。

  • Exchange 組織管理者の役割

エッジ トランスポート サーバーの役割がインストールされているコンピュータで以下の手順を実行するには、そのコンピュータのローカルの 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注 :
次の例では、ハブ トランスポート サーバーで使用可能なトランスポート ルール アクションを使用しています。

変更するアクションの種類を判断する方法については、「トランスポート ルールのアクション」を参照してください。

単一の値を受け付ける既存のアクションの変更

まず、既存のトランスポート ルールのアクションを変数に割り当て、配列を表示します。次のコマンド構文を使用します。

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

トランスポート ルールのアクションを変数に割り当て、配列内のアクションの数を表示するには、次の操作を行います。

  1. 次のコマンドを実行して、変数にアクションの配列を割り当てます。

    $ActionArray = (Get-TransportRule "Test Rule").Actions
    
  2. 次のコマンドを実行して、配列内のアクションを表示します。

    $ActionArray
    

変更するアクションを特定し、その配列要素の番号を書き留めます。配列内の最初のアクションは、配列要素 0 にあります。変更するアクションが一覧の 3 番目のアクションである場合、その配列要素の番号は 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 にあります。変更するアクションが一覧の 3 番目のアクションである場合、その配列要素の番号は 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 である 2 番目のアクションのアクション プロパティは 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
    
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 TechCenter を参照してください。