Exchange 管理シェルでトランスポート ルールの条件と例外を変更する方法

 

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

トピックの最終更新日: 2007-03-20

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

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

開始する前に

以下の手順を実行する前に、「トランスポート ルールを変更する方法」を参照してください。このトピックでは、トランスポート ルールの条件と例外を変更するために必要な重要な情報が提供されています。

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

  • Exchange 組織管理者の役割

エッジ トランスポート サーバーの役割がインストールされているコンピュータで以下の手順を実行するには、そのコンピュータのローカルの Administrators グループのメンバであるアカウントを使用してログオンする必要があります。

アクセス許可、役割の委任、および Exchange Server 2007 の管理に必要な権限の詳細については、「アクセス許可に関する考慮事項」を参照してください。

これらの手順を実行するには、以下の概念を十分に理解しておく必要があります。

Exchange 管理シェルの詳細については、「Exchange 管理シェルの使用」を参照してください。

トランスポート ルールの条件または例外の変更

トランスポート ルールの条件と例外では、使用している基本的なトランスポート ルールの述語が同じなので、条件と例外を変更するための手順はよく似ています。このトピックでは、トランスポート ルールの条件を例にして手順を説明しますが、トランスポート ルールの例外にも同じ手順を適用できます。以下の手順を使用してトランスポート ルールの例外を変更する場合は、ConditionsExceptions に置き換えてください。次の例について考えます。

  • トランスポート ルールの条件にアクセスするには、次のコマンドを使用します。

    $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 です。一覧の中で 3 番目の条件を変更する場合、その配列要素番号は 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 である 2 番目の条件の述語プロパティは 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 TechCenter を参照してください。