Como modificar as ações de Regras de Transporte no Shell de Gerenciamento do Exchange
Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Tópico modificado em: 2007-08-27
Este tópico explica como usar o Shell de Gerenciamento do Exchange para modificar as ações de uma regra de transporte existente configurada em um computador em que a função de servidor Transporte de Hub ou Transporte de Borda do Microsoft Exchange Server 2007 esteja instalada.
Para obter mais informações sobre os agentes de Regras de Transporte, consulte Visão geral de regras de transporte.
Antes de começar
Antes de executar os procedimentos a seguir, consulte o tópico Como modificar uma regra de transporte, que fornece informações importantes necessárias para modificar as ações de regras de transporte.
Para executar esses procedimentos, você deve usar uma conta à qual esteja delegado o seguinte:
- Função Administrador da Organização do Exchange
Para executar os procedimentos a seguir em um computador em que a função de servidor Transporte de Borda esteja instalada, faça logon com uma conta que seja membro do grupo Administradores local no computador.
Para obter mais informações sobre permissões, delegação de funções e os direitos necessários para administrar o Exchange 2007, consulte Considerações sobre permissão.
Para executar estes procedimentos, você deve estar familiarizado com os seguintes conceitos:
Para obter mais informações sobre o Shell de Gerenciamento do Exchange, consulte Usando o Shell de Gerenciamento do Exchange.
Modificando as ações em uma Regra de Transporte
Adicionando ações a uma Regra de Transporte
Primeiro, você deve preservar as ações existentes. Atribua cada ação existente na matriz de ações à sua própria variável. Use a seguinte sintaxe de comando para atribuir a matriz de ações a uma variável:
$ActionArray = (Get-TransportRule "<rule name>").Actions
Para atribuir as ações de uma regra de transporte a uma variável e visualizar quantas ações estão na matriz
Execute o comando a seguir para atribuir a matriz de ações a uma variável:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Execute o seguinte comando para visualizar o número de ações na matriz:
$ActionArray.Length
Em seguida, atribua cada ação da matriz à sua própria variável. As ações estão em elementos da matriz, que são numerados de 0
a $ActionArray.Length - 1
. Use a seguinte sintaxe para atribuir cada elemento da matriz de ações à sua própria variável:
$ExistingAction<Array Element Number> = $ActionArray[<Array Element Number>]
Para atribuir cada elemento da matriz de ações à sua própria variável
Execute os seguintes comandos:
$ExistingAction0 = $ActionArray[0] $ExistingAction1 = $ActionArray[1]
Em seguida, crie a nova ação ou ações. Não é possível usar as ações que já estejam aplicadas à regra de transporte existente. Use a seguinte sintaxe para atribuir uma nova ação a uma variável:
$NewAction = Get-TransportRuleAction <Action Name>
Para obter uma lista de ações de regras de transporte, consulte Ações de regras de transporte.
Para atribuir uma nova ação a uma nova variável
Execute o seguinte comando:
$NewAction = Get-TransportRuleAction LogEvent
Depois de atribuir a nova ação a uma nova variável, atribua um valor à ação. Use o seguinte comando para atribuir um valor à nova ação:
$NewAction.<ActionProperty> = <Single Value or Array of Values>
Para obter uma lista de propriedades de ações de regras de transporte e a formatação esperada para seus valores, consulte Ações de regras de transporte.
Para atribuir valores a uma nova ação
Execute o seguinte comando:
$NewAction.LogMessage = "Transport Rule triggered"
Depois de criar todas as novas ações, aplique todas elas à regra de transporte existente. Use a sintaxe de comando a seguir para modificar a regra de transporte:
Set-TransportRule <Transport Rule Name> -Action @(<Actions>)
Dica
Você deve classificar as ações novas e existentes de acordo com sua Rank
ao especificar as ações no comando Set-TransportRule. Use o comando Get-TransportRuleAction para visualizar a posição de cada ação.
Para modificar a regra de transporte existente
Execute o seguinte comando:
Set-TransportRule "Test Rule" -Action @($ExistingAction0, $ExistingAction1, $NewAction)
Removendo ações de uma Regra de Transporte
Para remover uma ação de uma regra de transporte, siga estas etapas, a partir da seção anterior, neste tópico:
Atribua as ações de uma regra de transporte a uma variável e visualize quantas ações estão na matriz.
Atribua cada elemento da matriz de ações à sua própria variável, exceto a ação que você deseja remover.
Modifique a regra de transporte existente.
Para remover uma ação de uma regra de transporte
Execute o comando a seguir para atribuir a matriz de ações a uma variável:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Execute o seguinte comando para visualizar o número de ações na matriz:
$ActionArray.Length
Execute o seguinte comando para visualizar as ações na variável
$ActionArray
e anote o número do elemento da matriz da ação que você deseja remover:$ActionArray
Execute os seguintes comandos para atribuir as ações que você deseja manter nas variáveis, omitindo os elementos da matriz das ações que não deseja manter:
$ExistingAction1 = $Action[1] ...
Execute o seguinte comando para modificar a regra de transporte, atribuindo somente as variáveis associadas às ações que você deseja manter:
Set-TransportRule "Test Rule" -Action @($ExistingAction1)
Modificando o valor de uma ação existente em uma Regra de Transporte
Os procedimentos para modificar uma ação dependem se a ação aceita um único valor ou vários valores. Siga o procedimento que se aplica ao tipo de ação que você deseja modificar.
Dica
Os exemplos a seguir usam ações da regra de transporte que estão disponíveis nos servidores de Transporte de Hub.
Para determinar o tipo de ação que você deseja modificar, consulte Ações de regras de transporte.
Modificando uma ação de valor único existente
Primeiro, atribua as ações da regra de transporte existente a uma variável e visualize a matriz. Use a seguinte sintaxe de comando:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Para atribuir as ações de uma regra de transporte a uma variável e visualizar quantas ações estão na matriz
Execute o comando a seguir para atribuir a matriz de ações a uma variável:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Execute o comando a seguir para visualizar as ações na matriz:
$ActionArray
Determine qual ação você deseja modificar e anote seu número de elemento da matriz. A primeira ação da matriz está no elemento 0
da matriz. Se a ação que você deseja modificar for a terceira ação da lista, o número do elemento da matriz será 2
. Em seguida, você deve determinar a propriedade ou as propriedades da ação. As propriedades da ação são sempre listadas imediatamente antes da linha que começa com Name
.
Depois de determinar o número do elemento da matriz, atribua o novo valor a essa ação usando a seguinte sintaxe de comando:
$ActionArray[<array element number>].<Action Property> = <Single Value>
Para obter uma lista de propriedades de ações de regras de transporte e a formatação esperada para seus valores, consulte Ações de regras de transporte.
Para atribuir um valor à ação SetScl no elemento de matriz 2
Execute o seguinte comando:
$ActionArray[2].SclValue = "7"
Para modificar a regra de transporte existente
Execute o seguinte comando:
Set-TransportRule "Test Rule" -Action $ActionArray
Dica
Você não precisa inserir a variável $ActionArray
em uma matriz porque a variável $ActionArray
já está na matriz.
Adicionando valores a uma ação de vários valores existente
Primeiro, você deve atribuir as ações da regra de transporte existente a uma variável e exibir a matriz. Use a seguinte sintaxe de comando:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Para atribuir as ações de uma regra de transporte a uma variável e visualizar quantas ações estão na matriz
Execute o comando a seguir para atribuir a matriz de ações a uma variável:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Execute o comando a seguir para visualizar as ações na matriz:
$ActionArray
Determine qual ação você deseja modificar e anote seu número de elemento da matriz. A primeira ação da matriz está no elemento 0
da matriz. Se a ação que você deseja modificar for a terceira ação da lista, o número do elemento da matriz será 2
. Você deve então determinar a propriedade ou propriedades da ação. As propriedades da ação são sempre listadas imediatamente antes da linha que começa por Name
, como no exemplo a seguir:
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>
Nesse exemplo, a primeira ação, no elemento 0
da matriz, tem a propriedade de ação Addresses
. A segunda ação, no elemento 1
da matriz, tem as propriedades da ação RejectReason
e EnhancedStatusCode
.
Para adicionar novos valores a uma ação existente, use a seguinte sintaxe de comando:
$ActionArray[<Array Element Number>].<Action Property> += <Array of Values>
Para obter uma lista de propriedades de ações de regras de transporte e a formatação esperada para seus valores, consulte Ações de regras de transporte.
Para adicionar valores a uma ação existente no elemento 0 da matriz do exemplo
Execute o seguinte comando:
$ActionArray[0].Addresses += @((Get-DistributionGroup "Example Group 1"), (Get-DistributionGroup "Example Group 2))
Para modificar a regra de transporte existente
Execute o seguinte comando:
Set-TransportRule "Test Rule" -Action $ActionArray
Dica
Você não precisa inserir a variável $ActionArray
em uma matriz porque a variável $ActionArray
já está na matriz.
Removendo valores de uma ação de vários valores existente
Para remover valores de uma ação existente, você deve anotar os valores existentes e reinseri-los na ação, omitindo os valores indesejados. Ao executar o procedimento a seguir, os valores existentes são substituídos pelos valores especificados.
Dica
O procedimento a seguir funciona bem para ações que tenham somente poucos valores configurados. No entanto, para ações que tenham dezenas ou centenas de valores configurados, esse procedimento é inviável. Recomendamos o uso de um loop ForEach
quando não for prático reatribuir manualmente valores a uma ação.
Para obter mais informações, consulte Usando o Shell de Gerenciamento do Exchange.
Primeiro, você deve atribuir as ações da regra de transporte existente a uma variável e exibir a matriz. Use a seguinte sintaxe de comando:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Para atribuir as ações de uma regra de transporte a uma variável e visualizar quantas ações estão na matriz
Execute o comando a seguir para atribuir a matriz de ações a uma variável:
$ActionArray = (Get-TransportRule "Test Rule").Actions
Execute o comando a seguir para visualizar as ações na matriz:
$ActionArray
Em seguida, visualize os valores da condição que você deseja modificar e substitua os valores dessa ação pelos valores que deseja manter. Para obter mais informações sobre como determinar o número do elemento e as propriedades da ação de uma matriz de condições, consulte "Adicionando valores a uma ação de vários valores existente", anteriormente, neste tópico. Use a seguinte sintaxe de comando:
$ActionArray[<Array Element Number>]
Em seguida, substitua os valores existentes da ação que você deseja modificar pelos valores que deseja manter. Use a seguinte sintaxe de comando:
$ActionArray[<Array Element Number>].<Action Property> = <Array of Values>
Para obter uma lista de propriedades de ações de regras de transporte e a formatação esperada para seus valores, consulte Predicados da regra de transporte.
Para remover valores de uma ação existente no elemento 0 da matriz do exemplo anterior
Execute o seguinte comando para visualizar os valores atuais que estão configurados na ação:
$ActionArray[0]
Execute o seguinte comando para substituir os valores atuais pelos valores desejados:
$ActionArray[0].Addresses = @((Get-Mailbox "Kim Akers"),(Get-Mailbox "Frank Lee"))
Para modificar a regra de transporte existente
Execute o seguinte comando:
Set-TransportRule "Test Rule" -Action $ActionArray
Dica
Você não precisa inserir a variável
$ActionArray
em uma matriz porque a variável$ActionArray
já está na matriz.
Para obter mais informações
Para obter informações detalhadas sobre sintaxe e parâmetros de cada comando, consulte os seguintes tópicos:
Para obter mais informações sobre regras de transporte, consulte os tópicos a seguir: