Preparar a caixas de correio para movimentações entre florestas usando o Shell de gerenciamento do Exchange
Exchange Server dá suporte a movimentações e migrações de caixa de correio usando os cmdlets New-MoveRequest e New-MigrationBatch do Shell do Exchange Management. Você também pode mover a caixa de correio no Centro de administração do Exchange (EAC).
No Exchange 2016, você pode mover uma caixa de correio exchange 2010, Exchange 2013 ou Exchange 2016 de uma floresta exchange de origem para uma floresta de destino do Exchange 2016.
No Exchange 2019, você pode mover uma caixa de correio exchange 2013, Exchange 2016 ou Exchange 2019 de uma floresta exchange de origem para uma floresta de destino do Exchange 2019.
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 exemplo de script do Exchange PowerShell descrito neste tópico dá suporte a essa tarefa sincronizando usuários de caixas de correio de uma floresta de origem do Exchange para florestas de destino do Exchange como usuários de email (também conhecidos como usuários habilitados para email). O script copia os atributos do Active Directory dos usuários da caixa de correio na floresta de origem para a floresta de destino e usa o cmdlet Update-Recipient para transformar os objetos de destino em usuários de email.
Para obter mais informações sobre como usar e escrever scripts, consulte Sobre scripts. 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? Confira Gerenciar movimentos de caixa de correio locais no Exchange Server.
Do que você precisa saber para começar?
Localize o script Prepare-MoveRequest.ps1 em %ExchangeInstallPath%Scripts. Por padrão, %ExchangeInstallPath% é C:\Program Files\Microsoft\Exchange Server\V15\ (observe o seguinte '\').
Para executar o script de exemplo, você precisa do seguinte:
Uma floresta de origem do Exchange (onde a caixa de correio reside atualmente).
Para florestas de destino do Exchange 2016, a caixa de correio de origem pode estar no Exchange 2010, Exchange 2013 ou Exchange 2016.
Para florestas de destino do Exchange 2019, a caixa de correio de origem pode estar no Exchange 2013, Exchange 2016 ou Exchange 2019.
Uma floresta de destino com o Exchange 2016 ou Exchange 2019 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 em: Exchange Server, Exchange Online ou Proteção do Exchange Online.
Usar o script Prepare-MoveRequest.ps1 a fim de preparar caixas de correio para movimentações entre florestas
Execute o script do Shell de Gerenciamento do Exchange em um servidor de caixa de correio na floresta exchange 2016 ou Exchange 2019 de destino. 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.
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
Conjunto de parâmetros do script
A tabela a seguir descreve o parâmetro definido para o script.
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 um dos seguintes valores: nome comum (CN), Alias, propriedade proxyAddress, propriedade objectGuid ou 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 de 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 para que o script possa selecionar a propriedade proxyAddress do usuário da caixa de correio de origem correta como a propriedade targetAddress do usuário de email de destino. Por padrão, o endereço SMTP primário do usuário da caixa de correio de origem é definido como a propriedade targetAddress do usuário de email de destino. |
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 OU (unidade organizacional) sob a qual o usuário de email de destino será criado. |
UseLocalObject | Opcional | O parâmetro UseLocalObject especifica se deve converter o objeto local existente no usuário de email de destino necessário se o script detectar um objeto na floresta local que entra em conflito com o usuário de email a ser criado. |
Exemplos
Esta seção contém vários exemplos de como você pode usar o script Prepare-MoveRequest.ps1.
Exemplo: usuário de email vinculado único
Este exemplo provisiona um único usuário de email vinculado na floresta local, quando há confiança florestal entre a floresta remota e a floresta local.
Execute os seguintes comandos para obter as credenciais de floresta local e floresta remota.
$LocalCredentials = Get-Credential
$RemoteCredentials = Get-Credential
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.
Execute o seguinte comando:
$UserCredentials = Get-Credential
Execute o comando a seguir para passar as informações de credencial para o 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 de email em massa
Você pode gerar um arquivo .csv que contém uma lista de identidades de caixa de correio da floresta de origem, o que permite que você pipe o conteúdo deste arquivo no script para criar em massa os usuários de email de destino.
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 em massa os usuários de email de destino.
Execute o seguinte comando para obter as credenciais de floresta remota.
$UserCredentials = Get-Credential
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 email de destino do usuário da caixa de correio de origem e detecta um objeto local habilitado para email duplicado, ele usa a seguinte lógica:
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 estiver habilitado para email, o script retornará um erro porque o script não dá suporte à conversão de um objeto que não está habilitado para email em um usuário de 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 habilitado para email de destino for um usuário de email ou um contato de email, que provavelmente será criado por uma implantação de sincronização gal (lista de endereços global) entre florestas, você poderá executar o script novamente com o parâmetro UseLocalObject para usar o objeto habilitado para email de destino para migração de caixa de correio.
Usuário de email
Se o objeto de destino for um usuário de email, o script copiará os seguintes atributos do usuário da caixa de correio de origem para o usuário de email de destino:
msExchMailboxGUID
msExchArchiveGUID
msExchArchiveName
Se o parâmetro LinkedMailUser for definido, o script copiará o atributomasterAccountSiddo objectSid / de origem.
Contato de email
Se o objeto de destino for um contato por email, o script excluirá o contato existente e copiará todos os seus atributos para um novo usuário de 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 de email, um novo atributo LegacyExchangeDN é gerado para o usuário de email de destino. O script copia o atributo LegacyExchangeDN do usuário de email de destino como um endereço x500 para as propriedades proxyAddress do usuário da caixa de correio de origem.