Converter caixas de correio do Exchange 2007 em usuários habilitados para email

Depois de concluir a migração em estágios, converta as caixas de correio em usuários habilitados para email para que as caixas de correio possam se conectar automaticamente à caixa de correio na nuvem.

Por que converter as caixas de correio em usuários habilitados para email?

Se você concluiu uma migração em estágios do Exchange para migrar as caixas de correio locais da organização do Exchange 2007 para o Office 365 e você deseja gerenciar os usuários baseados em nuvem de sua organização local — usando o Active Directory — você deve converter as caixas de correio locais em usuários habilitados para email (MEUs). Por quê? Depois que uma caixa de correio é migrada para a nuvem em uma migração em estágios do Exchange, acontecem duas coisas:

  • Um usuário tem uma caixa de correio local e uma caixa de correio na nuvem.

  • Os emails enviados para a caixa de correio local do usuário são encaminhados para a caixa de correio na nuvem. Isso acontece porque, durante o processo de migração, a propriedade TargetAddress na caixa de correio local é preenchida com o endereço de roteamento remoto da caixa de correio na nuvem. Isso significa que os usuários precisam se conectar a suas caixas de correio na nuvem para acessar seus emails.

Esse comportamento resulta em dois problemas:

  • Se uma pessoa usa o Microsoft Outlook para abrir a caixa de correio, o serviço Descoberta automática ainda tentará se conectar à caixa de correio local e o usuário não será capaz de se conectar à sua caixa de correio na nuvem. Se houver usuários que ainda não tenham sido migrados para a nuvem, você não poderá apontar seu registro CNAME de Descoberta automática para a nuvem até que todos os usuários serem migrados.

  • Se uma organização encerrar o Exchange depois que todas as caixas de correio locais tiverem sido migradas para a nuvem, as informações do usuário relacionadas às mensagens na caixa de correio na nuvem serão perdidas. A Ferramenta de Sincronização de Diretórios do Microsoft Online Services (DirSync) remove dados (como endereços proxy) do objeto de caixa de correio na nuvem porque a caixa de correio local não existe mais e o DirSync não consegue fazer a correspondência para a caixa de correio de nuvem devida.

A solução é converter a caixa de correio local para um usuário habilitado para email (MEU) em sua organização local depois de migrar caixas de correio do usuário para a nuvem. Quando você converter uma caixa de correio local para um MEU:

  • Os endereços de proxy de uma caixa de correio baseada em nuvem serão copiados para o novo MEU; se você encerrar o Exchange, esses endereços de proxy ainda serão mantidos no Active Directory.

  • As propriedades do MEU habilitam o DirSync para corresponder o MEU a sua caixa de correio de nuvem devida.

  • O serviço Descoberta Automática usa o MEU para conectar o Outlook à caixa de correio de nuvem depois que o usuário cria um novo perfil do Outlook.

Scripts do PowerShell para criar MEUs

Você pode usar os scripts a seguir para coletar informações sobre as caixas de correio baseada em nuvem e converter as caixas de correio do Exchange 2007 em MEUs.

O seguinte script coleta informações das caixas de correio na nuvem e as salva em um arquivo CSV. Execute primeiro este script.

Copie o script abaixo e dê um nome de arquivo ExportO365UserInfo.ps1.

Param($migrationCSVFileName = "migration.csv")
function O365Logon
{
#Check for current open O365 sessions and allow the admin to either use the existing session or create a new one
$session = Get-PSSession | ?{$_.ConfigurationName -eq 'Microsoft.Exchange'}
if($session -ne $null)
{
$a = Read-Host "An open session to Office 365 already exists. Do you want to use this session? Enter y to use the open session, anything else to close and open a fresh session."
if($a.ToLower() -eq 'y')
{
Write-Host "Using existing Office 365 Powershell Session." -ForeGroundColor Green
return
}
$session | Remove-PSSession
}
Write-Host "Please enter your Office 365 credentials" -ForeGroundColor Green
$cred = Get-Credential
$s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $cred -Authentication Basic -AllowRedirection
$importresults = Import-PSSession -Prefix "Cloud" $s
}
function Main
{
#Verify the migration CSV file exists
if(!(Test-Path $migrationCSVFileName))
{
Write-Host "File $migrationCSVFileName does not exist." -ForegroundColor Red
Exit
}
#Import user list from migration.csv file
$MigrationCSV = Import-Csv $migrationCSVFileName
#Get mailbox list based on email addresses from CSV file
$MailBoxList = $MigrationCSV | %{$_.EmailAddress} | Get-CloudMailbox
$Users = @()
#Get LegacyDN, Tenant, and On-Premise Email addresses for the users
foreach($user in $MailBoxList)
{
$UserInfo = New-Object System.Object
$CloudEmailAddress = $user.EmailAddresses | ?{($_ -match 'onmicrosoft') -and ($_ -cmatch 'smtp:')}
if ($CloudEmailAddress.Count -gt 1)
{
$CloudEmailAddress = $CloudEmailAddress[0].ToString().ToLower().Replace('smtp:', '')
Write-Host "$user returned more than one cloud email address. Using $CloudEmailAddress" -ForegroundColor Yellow
}
else
{
$CloudEmailAddress = $CloudEmailAddress.ToString().ToLower().Replace('smtp:', '')
}
$UserInfo | Add-Member -Type NoteProperty -Name LegacyExchangeDN -Value $user.LegacyExchangeDN
$UserInfo | Add-Member -Type NoteProperty -Name CloudEmailAddress -Value $CloudEmailAddress
$UserInfo | Add-Member -Type NoteProperty -Name OnPremiseEmailAddress -Value $user.PrimarySMTPAddress.ToString()
$UserInfo | Add-Member -Type NoteProperty -Name MailboxGUID -Value $user.ExchangeGUID
$Users += $UserInfo
}
#Check for existing csv file and overwrite if needed
if(Test-Path ".\cloud.csv")
{
$delete = Read-Host "The file cloud.csv already exists in the current directory. Do you want to delete it? Enter y to delete, anything else to exit this script."
if($delete.ToString().ToLower() -eq 'y')
{
Write-Host "Deleting existing cloud.csv file" -ForeGroundColor Red
Remove-Item ".\cloud.csv"
}
else
{
Write-Host "Will NOT delete current cloud.csv file. Exiting script." -ForeGroundColor Green
Exit
}
}
$Users | Export-CSV -Path ".\cloud.csv" -notype
(Get-Content ".\cloud.csv") | %{$_ -replace '"', ''} | Set-Content ".\cloud.csv" -Encoding Unicode
Write-Host "CSV File Successfully Exported to cloud.csv" -ForeGroundColor Green
}
O365Logon
Main

O seguinte script converte as caixas de correio do Exchange 2007 local em MEUs. Execute este script depois de ter executado o script para coletar informações das caixas de correio na nuvem.

Copie o script abaixo em um arquivo .txt e salve o arquivo e dê a ele um nome de arquivo Exchange2007MBtoMEU.ps1.

param($DomainController = [String]::Empty)
function Main
{
#Script Logic flow
#1. Pull User Info from cloud.csv file in the current directory
#2. Lookup AD Info (DN, mail, proxyAddresses, and legacyExchangeDN) using the SMTP address from the CSV file
#3. Save existing proxyAddresses
#4. Add existing legacyExchangeDN's to proxyAddresses
#5. Delete Mailbox
#6. Mail-Enable the user using the cloud email address as the targetAddress
#7. Disable RUS processing
#8. Add proxyAddresses and mail attribute back to the object
#9. Add msExchMailboxGUID from cloud.csv to the user object (for offboarding support)
if($DomainController -eq [String]::Empty)
{
Write-Host "You must supply a value for the -DomainController switch" -ForegroundColor Red
Exit
}
$CSVInfo = Import-Csv ".\cloud.csv"
foreach($User in $CSVInfo)
{ Write-Host "Processing user" $User.OnPremiseEmailAddress -ForegroundColor Green
Write-Host "Calling LookupADInformationFromSMTPAddress" -ForegroundColor Green
$UserInfo = LookupADInformationFromSMTPAddress($User)
#Check existing proxies for On-Premise and Cloud Legacy DN's as x500 proxies. If not present add them.
$CloudLegacyDNPresent = $false
$LegacyDNPresent = $false
foreach($Proxy in $UserInfo.ProxyAddresses)
{
if(("x500:$UserInfo.CloudLegacyDN") -ieq $Proxy)
{
$CloudLegacyDNPresent = $true
}
if(("x500:$UserInfo.LegacyDN") -ieq $Proxy)
{
$LegacyDNPresent = $true
}
}
if(-not $CloudLegacyDNPresent)
{
$X500Proxy = "x500:" + $UserInfo.CloudLegacyDN
Write-Host "Adding $X500Proxy to EmailAddresses" -ForegroundColor Green
$UserInfo.ProxyAddresses += $X500Proxy
}
if(-not $LegacyDNPresent)
{
$X500Proxy = "x500:" + $UserInfo.LegacyDN
Write-Host "Adding $X500Proxy to EmailAddresses" -ForegroundColor Green
$UserInfo.ProxyAddresses += $X500Proxy
}
#Disable Mailbox
Write-Host "Disabling Mailbox" -ForegroundColor Green
Disable-Mailbox -Identity $UserInfo.OnPremiseEmailAddress -DomainController $DomainController -Confirm:$false
#Mail Enable
Write-Host "Enabling Mailbox" -ForegroundColor Green
Enable-MailUser -Identity $UserInfo.Identity -ExternalEmailAddress $UserInfo.CloudEmailAddress -DomainController $DomainController
#Disable RUS
Write-Host "Disabling RUS" -ForegroundColor Green
Set-MailUser -Identity $UserInfo.Identity -EmailAddressPolicyEnabled $false -DomainController $DomainController
#Add Proxies and Mail
Write-Host "Adding EmailAddresses and WindowsEmailAddress" -ForegroundColor Green
Set-MailUser -Identity $UserInfo.Identity -EmailAddresses $UserInfo.ProxyAddresses -WindowsEmailAddress $UserInfo.Mail -DomainController $DomainController
#Set Mailbox GUID. Need to do this via S.DS as Set-MailUser doesn't expose this property.
$ADPath = "LDAP://" + $DomainController + "/" + $UserInfo.DistinguishedName
$ADUser = New-Object -TypeName System.DirectoryServices.DirectoryEntry -ArgumentList $ADPath
$MailboxGUID = New-Object -TypeName System.Guid -ArgumentList $UserInfo.MailboxGUID
[Void]$ADUser.psbase.invokeset('msExchMailboxGUID',$MailboxGUID.ToByteArray())
Write-Host "Setting Mailbox GUID" $UserInfo.MailboxGUID -ForegroundColor Green
$ADUser.psbase.CommitChanges()
Write-Host "Migration Complete for" $UserInfo.OnPremiseEmailAddress -ForegroundColor Green
Write-Host ""
Write-Host ""
}
}
function LookupADInformationFromSMTPAddress($CSV)
{
$Mailbox = Get-Mailbox $CSV.OnPremiseEmailAddress -ErrorAction SilentlyContinue
if($Mailbox -eq $null)
{
Write-Host "Get-Mailbox failed for" $CSV.OnPremiseEmailAddress -ForegroundColor Red
continue
}
$UserInfo = New-Object System.Object
$UserInfo | Add-Member -Type NoteProperty -Name OnPremiseEmailAddress -Value $CSV.OnPremiseEmailAddress
$UserInfo | Add-Member -Type NoteProperty -Name CloudEmailAddress -Value $CSV.CloudEmailAddress
$UserInfo | Add-Member -Type NoteProperty -Name CloudLegacyDN -Value $CSV.LegacyExchangeDN
$UserInfo | Add-Member -Type NoteProperty -Name LegacyDN -Value $Mailbox.LegacyExchangeDN
$ProxyAddresses = @()
foreach($Address in $Mailbox.EmailAddresses)
{
$ProxyAddresses += $Address
}
$UserInfo | Add-Member -Type NoteProperty -Name ProxyAddresses -Value $ProxyAddresses
$UserInfo | Add-Member -Type NoteProperty -Name Mail -Value $Mailbox.WindowsEmailAddress
$UserInfo | Add-Member -Type NoteProperty -Name MailboxGUID -Value $CSV.MailboxGUID
$UserInfo | Add-Member -Type NoteProperty -Name Identity -Value $Mailbox.Identity
$UserInfo | Add-Member -Type NoteProperty -Name DistinguishedName -Value (Get-User $Mailbox.Identity).DistinguishedName
$UserInfo
}
Main

Etapas de configuração para converter as caixas de correio locais em MEUs

Siga estas etapas para concluir o processo.

  1. Copie ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 e o arquivo CSV usado para executar o lote de migração para o mesmo diretório do seu servidor local.

  2. Renomeie o arquivo CSV de migração para migration.csv.

  3. . No Shell de Gerenciamento do Exchange, execute o seguinte comando. O script pressupõe que o arquivo CSV esteja no mesmo diretório e nomeado como migration.csv.

    .\ExportO365UserInfo.ps1

    Você deverá usar a sessão existente ou abrir uma nova sessão.

  4. Digite n e pressione Enter para abrir uma nova sessão.

    O script é executado e, em seguida, salva o arquivo Cloud.csv na pasta de trabalho atual.

  5. Insira as credenciais de administrador para a sua organização na nuvem e, em seguida, clique em OK.

  6. Execute o seguinte comando em uma nova sessão do Shell de Gerenciamento do Exchange. Esse comando supõe que ExportO365UserInfo.ps1 e Cloud.csv estejam na mesma pasta.

    .\Exchange2007MBtoMEU.ps1 <FQDN of on-premises domain controller>

    Por exemplo:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    O script converte caixas de correio locais em MEUs para todos os usuários incluídos no Cloud.csv.

  7. Verifique se os novos MEUs foram criados. Em Usuários e Computadores do Active Directory, faça o seguinte:

    1. Clique em Ação > Localizar

    2. Clique na guia Exchange

    3. Selecione Mostrar apenas destinatários do Exchangee, então, selecione Usuários com endereço de email externo.

    4. Clique em Localizar agora.

    As caixas de correio que foram convertidas em MEUs são listadas nos Resultados da pesquisa.

  8. Use Usuários e computadores do Active Directory, Editar ADSI ou Ldp.exe para verificar se as seguintes propriedades de MEU estão preenchidas com as informações corretas.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×