Compartilhar via


Preparar caixas de correio para mudanças entre florestas usando o script Prepare-MoveRequest.ps1 no Shell

Aplica-se a: Exchange Server 2013

Resumo: Saiba como gerenciar movimentos e migrações de caixa de correio entre florestas no Exchange 2013 usando o script Prepare-MoveRequest.ps1 no Shell de Gerenciamento do Exchange.

O Microsoft Exchange 2013 suporta movimentações e migrações de caixas de correio, usando os cmdlets New-MoveRequest e New-MigrationBatch. Você também pode mover a caixa de correio por meio do Centro de administração do Exchange (EAC). Você pode mover uma caixa de correio exchange 2010 ou Exchange 2013 de uma floresta do Exchange de origem para uma floresta de destino do Exchange 2013.

Para executar os cmdlets New-MoveRequest e New-MigrationBatch, 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 2013 para florestas de destino do Exchange 2013 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 Scripting with the Exchange Management Shell. Para mais informações sobre a preparação de movimentações entre florestas, consulte Preparar a caixas de correio para solicitações de movimentação entre florestas.

Procurando outras tarefas de gerenciamento relacionadas a solicitações de movimentação remota? Consulte Gerenciar movimentações de local.

Do que você precisa saber para começar?

  • Localize o script no seguinte local: %ExchangeInstallPath%Scripts

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

    • Uma floresta de origem do Exchange, onde a caixa de correio reside atualmente. Isso pode ser uma caixa de correio do Exchange 2010 ou exchange 2013.

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

Dica

Está com problemas? Peça ajuda nos fóruns do Exchange. Visite os fóruns no Exchange Server.

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 2013 na floresta de destino do Exchange 2013. 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.

Observação

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

  1. Execute os seguintes comandos para obter as credenciais de floresta local e floresta remota.

    $LocalCredentials = Get-Credential
    $RemoteCredentials = Get-Credential
    
  2. 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
    

Conjunto de parâmetros do script

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
Identidade 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 tem 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.

Observação: quando você especificar esse parâmetro, o objeto MailUser não terá o mapeamento de endereço de email no domínio da 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.
LocalForestCredential Opcional O parâmetro LocalForestCredential especifica o administrador com permissões para gravar dados na floresta de destino Active Directory.

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

Se a floresta remota e a floresta local tiverem uma relação confiável configurada, não use uma conta de usuário da floresta remota como credencial de 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: Único usuário habilitado para email vinculado

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.

  1. Execute os seguintes comandos para obter as credenciais de floresta local e floresta remota.

    $LocalCredentials = Get-Credential
    $RemoteCredentials = Get-Credential
    
  2. Depois, 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: Pipelining

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

  1. Execute o seguinte comando:

    $UserCredentials = Get-Credential
    
  2. 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: Usar um arquivo. csv para criar usuários habilitados para email em massa

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:

Identity
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.

  1. Execute o seguinte comando para obter as credenciais de floresta remota.

    $UserCredentials = Get-Credential
    
  2. 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 vários cenários para objetos de destino.

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 atributomasterAccountSiddo objectSid/ 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 atributomasterAccountSiddo objectSid/ 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.