Preparar Caixas de Correio para Mudanças Entre Florestas Usando o Script Prepare-MoveRequest.ps1 no Shell

 

Aplica-se a: Exchange Server 2010 SP2, Exchange Server 2010 SP3

Tópico modificado em: 2016-11-28

O Microsoft Exchange Server 2010 oferece suporte a uma movimentação online de caixa de correio usando o cmdlet New-MoveRequest. É possível mover uma caixa de correio de uma floresta de origem do Exchange para uma floresta de destino no Exchange 2010.

Para executar o cmdlet New-MoveRequest, um usuário de email deve existir na floresta de destino do Exchange e deve ter um conjunto mínimo de atributos necessários do Active Directory.

O script do PowerShell Windows de exemplo descrito neste tópico suporta essa tarefa sincronizando usuários de caixa de correio de uma floresta de origem do Exchange 2010, Exchange Server 2007 ou Exchange Server 2003 para florestas de destino do Exchange 2010 como usuários habilitados para email. O script copia os atributos do Active Directory dos usuários de caixa de correio na floresta de origem para a floresta de destino e então utiliza o cmdlet Update-Recipient para transformar os objetos de destino em usuários habilitados para email.

Para obter mais informações sobre como usar e escrever scripts, consulte Script com o Shell de Gerenciamento do Exchange. Para mais informações sobre a preparação de movimentações entre florestas, consulte Preparar Caixas de Correio para Solicitações de Mudança entre Florestas.

Procurando outras tarefas de gerenciamento relacionadas a solicitações de movimentação remota? Consulte Gerenciando Solicitações de Movimentação Remota.

Pré-requisitos

  • Localize o script no seguinte local: Arquivos de programas\Microsoft\Exchange Server\V14\Scripts.

  • Para executar o script de exemplo, você precisa do seguinte:

    • Uma floresta de origem que esteja executando o Exchange 2010, o Exchange 2007 ou o Exchange 2003, onde a caixa de correio reside atualmente.

    • Uma floresta de destino com o Exchange 2010 instalado, para onde a caixa de correio será movida.

Usar o script Prepare-MoveRequest.ps1 a fim de preparar caixas de correio para movimentações entre florestas

Execute o script do Shell em uma função de servidor do Exchange 2010 na floresta de destino do Exchange 2010. O script copia os atributos de caixa de correio da floresta de origem.

Para atribuir uma credencial de autenticação específica para o controlador de domínio de floresta remota, você deve primeiro executar o cmdlet Get-Credential do PowerShell Windows e armazenar a entrada do usuário em uma variável temporária. Quando você executar o cmdlet Get-Credential, ele solicitará o nome do usuário e a senha da conta usada durante a autenticação com o controlador de domínio de floresta remota. Você pode então usar a variável temporária no script Prepare-MoveRequest.ps1. Para mais informações sobre o cmdlet Get-Credential, consulte Get-Credential.

Dica

Certifique-se de usar duas credenciais separadas para a floresta local e a floresta remota ao chamar esse script.

Primeiro, execute os seguintes comandos para obter as credenciais de floresta local e floresta remota.

$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential

Em seguida, execute os seguintes comandos para passar as informações de credenciais aos parâmetros LocalForestCredential e RemoteForestCredential no script Prepare-MoveRequest.ps1.

Prepare-MoveRequest.ps1 -Identity JohnSmith@Fabrikan.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials

A tabela a seguir descreve o parâmetro definido para o script.

Parâmetro definido para o script Prepare-MoveRequest.ps1

Parâmetro Obrigatório Descrição

Identity

Obrigatório

O parâmetro Identity identifica exclusivamente uma caixa de correio na floresta de origem. A identidade pode ser qualquer uma das seguintes:

  • CN (nome comum)

  • Alias

  • Propriedade proxyAddress

  • Propriedade objectGuid

  • Propriedade DisplayName

RemoteForestCredential

Obrigatório

O parâmetro RemoteForestCredential especifica o administrador que possui permissões para copiar dados do Active Directory da floresta de origem.

RemoteForestDomainController

Obrigatório

O parâmetro RemoteForestDomainController especifica o controlador de domínio na floresta de origem em que reside a caixa de correio.

DisableEmailAddressPolicy

Opcional

O parâmetro DisableEmailAddressPolicy especifica se a Política de Endereço de Email (EAP) deve ser desabilitada ao se criar um objeto MailUser na floresta de destino.

Quando você especificar esse parâmetro, o EAP na floresta de destino não será aplicado.

Dica

Quando você especificar esse parâmetro, o objeto MailUser não terá mapeamento de endereço de email no domínio de floresta local carimbado. Isso costuma ser carimbado pelo EAP.

LinkedMailUser

Opcional

O switch LinkedMailUser especifica se deve ser criado um MailUser vinculado na floresta local para o usuário de caixa de correio na floresta remota.

Se o switch for fornecido, o script criará um objeto MailUser de destino vinculado à caixa de correio de origem. Se o switch é omitido, o script criará um objeto MailUser regular de destino. Para mais informações, consulte Criar uma caixa de correio vinculada.

LocalForestCredential

Opcional

O parâmetro LocalForestCredential especifica o administrador com permissões para gravar dados no Active Directory da floresta de destino.

Recomendamos que você especifique explicitamente esse parâmetro para evitar problemas de permissão no Active Directory.

Se a floresta remota e a floresta local tiverem uma relação de confiança configurada, não use uma conta de usuário da floresta remota como a credencial da floresta local, embora a conta de usuário remota possa ter permissão para modificar o Active Directory na floresta local.

LocalForestDomainController

Opcional

O parâmetro LocalForestDomainController especifica um controlador de domínio na floresta de destino em que o usuário habilitado para email será criado.

Recomendamos que você especifique esse parâmetro para evitar possíveis problemas de atraso na replicação do controlador de domínio na floresta local que podem ocorrer caso um controlador de domínio aleatório seja selecionado.

MailboxDeliveryDomain

Opcional

O parâmetro MailboxDeliveryDomain especifica um domínio autoritativo da floresta de origem de modo que o script possa selecionar a propriedade proxyAddress correta do usuário de caixa de correio de origem como a propriedade targetAddress do usuário de destino habilitado para email.

Como padrão, o endereço SMTP primário do usuário de caixa de correio de origem está definido como as propriedade targetAddress do usuário de destino habilitado para email.

OverWriteLocalObject

Opcional

O parâmetro OverWriteLocalObject é usado para usuários criados pela ferramenta de migração do Active Directory. As propriedades são copiadas do contato de email existente para o usuário de email recém-criado. Porém, após essa cópia, o script também copia as propriedades do usuário de floresta de origem para o usuário de email recém-criado.

TargetMailUserOU

Opcional

O parâmetro TargetMailuserOU especifica a unidade organizacional (OU) sob a qual o usuário de destino habilitado para email será criado.

UseLocalObject

Opcional

O parâmetro UseLocalObject especifica se deve ser convertido o objeto local existente para o usuário habilitado para email solicitado caso o script detecte um objeto na floresta local que entra em conflito com o usuário habilitado para email a ser criado.

Exemplos

Esta seção contém vários exemplos de como você pode usar o script Prepare-MoveRequest.ps1.

Exemplo 1

Este exemplo apresenta um único usuário vinculado e habilitado para email na floresta local quando há confiança de floresta entre a floresta remota e a floresta local.

Primeiro, execute os seguintes comandos para obter as credenciais de floresta local e floresta remota.

$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential

Em seguida, execute o seguinte comando para passar as informações de credenciais aos parâmetros LocalForestCredential e RemoteForestCredential no script Prepare-MoveRequest.ps1.

Prepare-MoveRequest.ps1 -Identity JamesAlvord@Contoso.com -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $RemoteCredentials -LocalForestDomainController DC001.Contoso.com -LocalForestCredential $LocalCredentials -LinkedMailUser 

Exemplo 2

Este exemplo suporta pipelining caso você forneça uma lista de identidades de caixa de correio.

Primeiro, execute o seguinte comando.

$UserCredentials = Get-Credential

Em seguida, execute o seguinte comando para passar as informações de credenciais ao parâmetro RemoteForestCredential no script Prepare-MoveRequest.ps1.

"IanP@Contoso.com", "JoeAn@Contoso.com" | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials

Exemplo 3

Você pode gerar um arquivo CSV que contém uma lista de identidades de caixa de correio da floresta de origem, a qual permite canalizar o conteúdo desse arquivo no script para criar usuários de destino em massa habilitados para email.

Por exemplo, o conteúdo do arquivo CSV pode ser:

Identidade

Ian@contoso.com

John@contoso.com

Cindy@contoso.com

Este exemplo chama um arquivo CSV para criar usuários de destino em massa habilitados para email.

Primeiro, execute o seguinte comando para obter as credenciais de floresta remota.

$UserCredentials = Get-Credential

Em seguida, execute o seguinte comando para passar as informações de credenciais ao parâmetro RemoteForestCredential no script Prepare-MoveRequest.ps1.

Import-Csv Test.csv | Prepare-MoveRequest.ps1 -RemoteForestDomainController DC001.Fabrikam.com -RemoteForestCredential $UserCredentials

Comportamento do script por objeto de destino

Esta seção descreve como o script se comporta em relação aos seguintes cenários para objetos de destino:

  • Objeto de destino habilitado para email duplicado

  • Usuário habilitado para email

  • Contato habilitado para email

  • Atributo LegacyExchangeDN

Objeto de destino habilitado para email duplicado

Quando o script tenta criar um usuário de destino habilitado para email pelo usuário de caixa de correio de origem e detecta um objeto local duplicado habilitado para email, a seguinte lógica é usada:

  • Se o atributo masterAccountSid do usuário da caixa de correio de origem for igual a qualquer atributo objectSid ou masterAccountSid do objeto de destino:

    • Se o objeto de destino não for habilitado para email, o script retorna um erro porque não oferece suporte à conversão de um objeto que não é habilitado para email em um usuário habilitado para email.

    • Se o objeto de destino for habilitado para email, o objeto de destino é uma cópia.

  • Se um endereço nas propriedades proxyAddress (smtp/x500 somente) de usuário de caixa de correio de origem for igual a um endereço nas propriedades proxyAddress (smtp/x500 somente) de objeto de destino, então o objeto de destino é uma cópia.

O script informa o usuário sobre objetos duplicados.

Se o objeto de destino habilitado para email for um contato ou usuário habilitado para email, que é muito provavelmente criado por uma implantação de sincronização de lista de endereços global (GAL) (com base no Identity Lifecycle Management 2007 Service Pack 1) entre florestas, o usuário poderá executar novamente o script com o parâmetro UseLocalObject para usar o objeto de destino habilitado para email na migração de caixa de correio.

Usuário habilitado para email

Se o objeto de destino for um usuário habilitado para email, o script copia os seguintes atributos do usuário de caixa de correio de origem para o usuário de destino habilitado para email :

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

Se o parâmetro LinkedMailUser for definido, o script copiará o atributo objectSid/masterAccountSid de origem.

Contato habilitado para email

Se o objeto de destino for um contato habilitado para email, o script exclui o contato existente e copia todos os seus atributos para um novo usuário habilitado para email. O script também copia os seguintes atributos de um usuário de caixa de correio de origem:

  • msExchMailboxGUID

  • msExchArchiveGUID

  • msExchArchiveName

  • sAMAccountName

  • userAccountControl (definido como 514 //equivalente a 0x202, ACCOUNTDISABLE | NORMAL_ACCOUNT)

  • userPrincipalName

Se o parâmetro LinkedMailUser for definido, o script copiará o atributo objectSid/masterAccountSid de origem.

Atributo LegacyExchangeDN

Quando o cmdlet Update-Recipient é chamado para converter o objeto de destino em um usuário habilitado para email, um novo atributo LegacyExchangeDN é gerado para o usuário de destino habilitado para email. O script copia o LegacyExchangeDN do usuário de destino habilitado para email como um endereço x500 para as propriedades proxyAddress do usuário de caixa de correio de origem. Essa ação garante a solução correta para destinatários quando as mensagens são enviadas entre as florestas de origem e de destino.

 © 2010 Microsoft Corporation. Todos os direitos reservados.