Ändern von Transportregelbedingungen und -ausnahmen mithilfe der Exchange-Verwaltungsshell

 

Gilt für: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Letztes Änderungsdatum des Themas: 2007-03-20

In diesem Thema wird erläutert, wie Sie über die Exchange-Verwaltungsshell die Bedingungen und Ausnahmen einer vorhandenen Transportregel auf einem Computer ändern können, auf dem die Microsoft Exchange Server 2007-Serverfunktion Hub-Transport oder Edge-Transport installiert ist.

Weitere Informationen über die Agents für Transportregeln finden Sie unter Übersicht über Transportregeln.

Bevor Sie beginnen

Bevor Sie die Verfahren in diesem Thema ausführen, lesen Sie Ändern einer Transportregel. Hier finden Sie wichtige Informationen zum Ändern von Transportregelbedingungen und -ausnahmen.

Damit Sie die nachstehenden Verfahren ausführen können, muss Folgendes an das verwendete Konto delegiert worden sein:

  • Exchange-Organisationsadministrator (Rolle)

Um die folgenden Verfahren auf einem Computer ausführen zu können, auf dem die Serverfunktion Edge-Transportinstalliert ist, müssen Sie sich mit einem Konto anmelden, das Mitglied der lokalen Gruppe Administratoren auf diesem Computer ist.

Weitere Informationen zu Berechtigungen, zum Delegieren von Rollen und zu den Rechten, die für die Verwaltung von Exchange Server 2007 erforderlich sind, finden Sie unter Überlegungen zu Berechtigungen.

Um diese Verfahren ausführen zu können, müssen Sie mit den folgenden Konzepten vertraut sein:

Weitere Informationen zur Exchange-Verwaltungsshell finden Sie unter Verwenden der Exchange-Verwaltungsshell.

Ändern von Bedingungen und Ausnahmen einer Transportregel

Die Verfahren zum Ändern von Bedingungen und Ausnahmen von Transportregeln sind sehr ähnlich, da Bedingungen und Ausnahmen mit denselben zugrunde liegenden Regelprädikaten arbeiten. Die in diesem Thema beschriebenen Beispielverfahren beziehen sich auf Transportregelbedingungen. Die gleichen Verfahren gelten jedoch auch für Transportregelausnahmen. Um die folgenden Regeln zum Ändern von Transportregelausnahmen anzupassen, ändern Sie Conditions in Exceptions. Betrachten Sie das folgende Beispiel:

  • Über den folgenden Befehl können Sie auf die Bedingungen einer Transportregel zugreifen:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  • Über den folgenden Befehl können Sie auf die Ausnahmen einer Transportregel zugreifen:

    $ExceptionArray = (Get-TransportRule "Test Rule").Exceptions
    

Hinzufügen von Bedingungen zu einer Transportregel

Zuerst müssen Sie die vorhandenen Bedingungen beibehalten. Weisen Sie jede im Bedingungsarray vorhandene Bedingung einer eigenen Variablen zu. Verwenden Sie die folgende Befehlssyntax, um einer Variablen das Bedingungsarray zuzuweisen:

$ConditionArray = (Get-TransportRule "<rule name>").Conditions

So weisen Sie einer Variablen die Bedingungen einer Transportregel zu und zeigen die Anzahl der im Array vorhandenen Bedingungen an

  1. Führen Sie den folgenden Befehl aus, um einer Variablen das Bedingungsarray zuzuweisen:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. Führen Sie den folgenden Befehl aus, um die Anzahl der Bedingungen im Array anzuzeigen:

    $ConditionArray.Length
    

Weisen Sie anschließend jede Bedingung im Array einer eigenen Variablen zu. Die Bedingungen befinden sich in Arrayelementen, die von 0 bis $Condition.Length - 1 nummeriert sind. Verwenden Sie die folgende Syntax, um jedes Bedingungsarrayelement einer eigenen Variablen zuzuweisen:

$ExistingCondition<Array Element Number> = $ConditionArray[<Array Element Number>]

So weisen Sie jedes Bedingungsarrayelement einer eigenen Variablen zu

  • Führen Sie die folgenden Befehle aus:

    $ExistingCondition0 = $ConditionArray[0]
    $ExistingCondition1 = $ConditionArray[1]
    

Erstellen Sie anschließend die neuen Bedingungen. Verzichten Sie auf Bedingungen, die bereits der vorhandenen Transportregel zugewiesen sind. Wählen Sie die folgende Syntax, um einer Variablen eine neue Bedingung zuzuweisen:

$NewCondition = Get-TransportRulePredicate <Predicate Name>

Eine Liste mit Transportregelprädikaten finden Sie unter Transportregelprädikate.

So weisen Sie einer neuen Variablen eine neue Bedingung zu

  • Führen Sie den folgenden Befehl aus:

    $NewCondition = Get-TransportRulePredicate SubjectContains
    

Weisen Sie, nachdem Sie die neue Bedingung einer neuen Variablen zugewiesen haben, der Bedingung Werte zu. Wählen Sie den folgenden Befehl, um der neuen Bedingung Werte zuzuweisen:

$NewCondition.<PredicateProperty> = <Single Value or Array of Values>

Eine Liste der Eigenschaften von Transportregelprädikaten und der erwarteten Formatierung ihrer Werte finden Sie unter Transportregelprädikate.

So weisen Sie einer neuen Bedingung Werte zu

  • Führen Sie den folgenden Befehl aus:

    $NewCondition.Words = @("Test Subject 1", "Test Subject 2")
    

Wenden Sie nach dem Erstellen aller neuen Bedingungen alle Bedingungen auf die vorhandene Transportregel an. Wählen Sie die folgende Befehlssyntax, um die Transportregel zu ändern:

Set-TransportRule <Transport Rule Name> -Condition @(<Conditions>)

Hinweis

Sie müssen die vorhandenen und neuen Bedingungen gemäß ihrem Rank sortieren, wenn Sie diese im Befehl Set-TransportRule angeben. Mit dem Befehl Get-TransportRulePredicate können Sie den Rang der einzelnen Bedingungen oder Ausnahmen anzeigen.

So ändern Sie die vorhandene Transportregel

  • Führen Sie den folgenden Befehl aus:

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

Entfernen von Bedingungen aus einer Transportregel

Um eine Bedingung aus einer Transportregel zu entfernen, befolgen Sie diese Anweisungen in dem Abschnitt weiter oben in diesem Thema:

  1. Weisen Sie einer Variablen die Bedingungen einer Transportregel zu, und zeigen Sie die Anzahl der im Array vorhandenen Bedingungen an.

  2. Weisen Sie jedes Bedingungsarrayelement, mit Ausnahme der zu entfernenden Bedingung, einer eigenen Variablen zu.

  3. Ändern Sie die vorhandene Transportregel.

So entfernen Sie eine Bedingung aus einer Transportregel

  1. Führen Sie den folgenden Befehl aus, um das Bedingungsarray einer Variablen zuzuweisen:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. Führen Sie den folgenden Befehl aus, um die Anzahl der Bedingungen im Array anzuzeigen:

    $ConditionArray.Length
    
  3. Führen Sie den folgenden Befehl aus, um die Bedingungen in der Variablen $ConditionArray anzuzeigen, und notieren Sie die Arrayelementnummer der Bedingung, die Sie entfernen möchten:

    $ConditionArray
    
  4. Führen Sie die folgenden Befehle aus, um die beizubehaltenden Bedingungen Variablen zuzuweisen, wobei Sie die Arrayelemente der Bedingungen weglassen, die Sie nicht beibehalten möchten:

    $ExistingCondition1 = $Condition[1]
    ...
    
  5. Führen Sie den folgenden Befehl zum Ändern der Transportregel aus, und weisen Sie nur die Variablen zu, die mit Bedingungen verknüpft sind, die Sie beibehalten möchten:

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

Ändern der Werte einer vorhandenen Bedingung einer Transportregel

Die Verfahren zum Ändern einer Bedingung hängen davon ab, ob die Bedingung einen oder mehrere Werte zulässt. Wählen Sie das Verfahren, das dem Typ der zu ändernden Bedingung entspricht.

Um den Typ der zu ändernden Bedingung zu bestimmen, lesen Sie Transportregelprädikate.

Ändern einer vorhandenen Bedingung mit einem Wert

Weisen Sie zuerst die Bedingungen der vorhandenen Transportregel einer Variablen zu, und zeigen Sie das Array an. Verwenden Sie die folgende Befehlssyntax:

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

So weisen Sie einer Variablen die Bedingungen einer Transportregel zu und zeigen die Anzahl der im Array vorhandenen Bedingungen an

  1. Führen Sie den folgenden Befehl aus, um das Bedingungsarray einer Variablen zuzuweisen:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. Führen Sie den folgenden Befehl aus, um die Bedingungen im Array anzuzeigen:

    $ConditionArray
    

Bestimmen Sie die zu ändernde Bedingung, und notieren Sie deren Arrayelementnummer. Unter "Hinzufügen von Werten zu einer vorhandenen Bedingung mit mehreren Werten" erfahren Sie, wie Sie die richtige Arrayelementnummer finden.

Weisen Sie nach Bestimmen der Arrayelementnummer den neuen Wert mithilfe der folgenden Befehlssyntax dieser Bedingung zu:

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

So weisen Sie der Bedingung "WithImportance" einen Wert beim Arrayelement 2 zu

  • Führen Sie den folgenden Befehl aus:

    $ConditionArray[2].Importance = "High"
    

So ändern Sie die vorhandene Transportregel

  • Führen Sie den folgenden Befehl aus:

    Set-TransportRule "Test Rule" -Condition $ConditionArray
    

Hinweis

Die Variable $ConditionArray muss nicht in ein Array eingefügt werden, weil sich die Variable $ConditionArray bereits in einem Array befindet.

Hinzufügen von Werten zu einer vorhandenen Bedingung mit mehreren Werten

Weisen Sie zuerst die Bedingungen der vorhandenen Transportregel einer Variablen zu, und zeigen Sie das Array an. Verwenden Sie die folgende Befehlssyntax:

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

So weisen Sie einer Variablen die Bedingungen einer Transportregel zu und zeigen die Anzahl der im Array vorhandenen Bedingungen an

  1. Führen Sie den folgenden Befehl aus, um das Bedingungsarray einer Variablen zuzuweisen:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. Führen Sie den folgenden Befehl aus, um die Bedingungen im Array anzuzeigen:

    $ConditionArray
    

Bestimmen Sie die zu ändernde Bedingung, und notieren Sie deren Arrayelementnummer. Die erste Bedingung im Array befindet sich beim Arrayelement 0. Wenn die zu ändernde Bedingung die dritte Bedingung in der Liste ist, lautet deren Arrayelementnummer 2. Sie müssen anschließend die Prädikateigenschaften der Bedingung bestimmen. Die Prädikateigenschaften der Bedingung befinden sich stets unmittelbar vor der mit LinkedDisplayTextException beginnenden Zeile (siehe das folgende Beispiel):

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

Bei diesem Beispiel hat die erste Bedingung beim Arrayelement 0 die Prädikateigenschaft Addresses. Die zweite Bedingung beim Arrayelement 1 hat die Prädikateigenschaft Words.

Mithilfe der folgenden Befehlssyntax können Sie einer vorhandenen Bedingung neue Werte hinzufügen:

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

Eine Liste der Eigenschaften von Transportregelprädikaten und der erwarteten Formatierung ihrer Werte finden Sie unter Transportregelprädikate.

So fügen Sie in dem Beispiel einer beim Arrayelement 1 vorhandenen Bedingung Werte hinzu

  • Führen Sie den folgenden Befehl aus:

    $ConditionArray[1].Words += @("Industry Projections", "Sales Forecast")
    

So ändern Sie die vorhandene Transportregel

  • Führen Sie den folgenden Befehl aus:

    Set-TransportRule "Test Rule" -Condition $ConditionArray
    

Hinweis

Die Variable $ConditionArray muss nicht in ein Array eingefügt werden, weil sich die Variable $ConditionArray bereits in einem Array befindet.

Entfernen von Werten aus einer vorhandenen Bedingung mit mehreren Werten

Um Werte aus einer vorhandenen Bedingung zu entfernen, müssen Sie die vorhandenen Werte notieren und anschließend die vorhandenen Werte erneut in die Bedingung eingeben, wobei Sie die nicht mehr gewünschten Werte weglassen. Beim folgenden Verfahren werden die vorhandenen Werte durch die von Ihnen angegebenen Werte ersetzt.

Hinweis

Das folgende Verfahren eignet sich gut für Bedingungen, für die nur wenige Werte konfiguriert sind. Für Bedingungen mit Dutzenden oder gar Hunderten von konfigurierten Werten ist dieses Verfahren jedoch nicht empfehlenswert. Es wird empfohlen, eine foreach-Schleife zu verwenden, wenn das manuelle erneute Zuweisen von Werten zu einer Bedingung zu aufwändig ist.
Weitere Informationen finden Sie unter Verwenden der Exchange-Verwaltungsshell.

Weisen Sie zuerst die Bedingungen der vorhandenen Transportregel einer Variablen zu, und zeigen Sie das Array an. Verwenden Sie die folgende Befehlssyntax:

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

So weisen Sie einer Variablen die Bedingungen einer Transportregel zu und zeigen die Anzahl der im Array vorhandenen Bedingungen an

  1. Führen Sie den folgenden Befehl aus, um das Bedingungsarray einer Variablen zuzuweisen:

    $ConditionArray = (Get-TransportRule "Test Rule").Conditions
    
  2. Führen Sie den folgenden Befehl aus, um die Bedingungen im Array anzuzeigen:

    $ConditionArray
    

Zeigen Sie anschließend die Werte der Bedingung an, die Sie ändern möchten, und ersetzen Sie die Werte dieser Bedingung durch die Werte, die Sie beibehalten möchten. Weitere Informationen zum Bestimmen der Elementnummer und Prädikateigenschaften eines Bedingungsarrays finden Sie weiter oben in diesem Thema unter "Hinzufügen von Werten zu einer vorhandenen Bedingung mit mehreren Werten". Verwenden Sie die folgende Befehlssyntax:

$ConditionArray[<Array Element Number>]

Ersetzen Sie anschließend die vorhandenen Werte der Bedingung, die Sie ändern möchten, durch die Werte, die Sie beibehalten möchten. Verwenden Sie die folgende Befehlssyntax:

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

Eine Liste der Eigenschaften von Transportregelprädikaten und der erwarteten Formatierung ihrer Werte finden Sie unter Transportregelprädikate.

So entfernen Sie in dem obigen Beispiel Werte aus einer beim Arrayelement 1 vorhandenen Bedingung

  1. Führen Sie den folgenden Befehl aus, um die aktuellen Werte anzuzeigen, die für die Bedingung konfiguriert sind:

    $ConditionArray[1]
    
  2. Führen Sie den folgenden Befehl aus, um die aktuellen Werte durch die gewünschten Werte zu ersetzen:

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

So ändern Sie die vorhandene Transportregel

  • Führen Sie den folgenden Befehl aus:

    Set-TransportRule "Test Rule" -Condition $ConditionArray
    

Hinweis

Die $ConditionArray-Variable muss nicht in ein Array eingefügt werden, weil sich die $ConditionArray-Variable bereits in einem Array befindet.

Weitere Informationen

Ausführliche Informationen zu Syntax und Parametern für die einzelnen Befehle finden Sie unter den folgenden Themen:

Weitere Informationen zu Transportregeln finden Sie unter den folgenden Themen: