Conversia cutiilor poștale Exchange 2007 la utilizatori cu e-mail activat

După ce ați terminat o migrare pe etape, faceți conversia cutiilor poștale pentru utilizatorii cu e-mail activat, astfel încât cutiile poștale să se poată conecta automat la cutia poștală din cloud.

De ce să efectuați conversia cutiilor poștale la utilizatori cu e-mail activat?

Dacă ați finalizat o migrare Exchange pe etape pentru a migra cutiile poștale locale Exchange 2007 ale organizației dvs. la Office 365 și doriți să gestionați utilizatorii bazați pe cloud din organizația dvs. locală, utilizând Active Directory, ar trebui să efectuați conversia cutiilor poștale locale la utilizatori cu e-mail activat (MEU). De ce? După migrarea unei cutii poștale din cloud în cadrul unei migrări Exchange pe etape se întâmplă două lucruri:

  • Utilizatorul are o cutie poștală locală și o cutie poștală din cloud.

  • Mesajele de e-mail trimise la cutia poștală locală a utilizatorului sunt redirecționate către cutia poștală din cloud. Acest lucru se întâmplă deoarece în timpul procesului de migrare, proprietatea TargetAddress a cutiei poștale locale este populată cu adresa de rutare de la distanță a cutiei poștale din cloud. Aceasta înseamnă că utilizatorii trebuie să se conecteze la cutia poștală din cloud pentru a-și accesa e-mailul.

Acest comportament creează două probleme:

  • Dacă o persoană utilizează Microsoft Outlook pentru a-și deschide cutia poștală, serviciul de descoperire automată încearcă în continuare să se conecteze la cutia poștală locală și utilizatorul nu se va putea conecta la cutia poștală din cloud. Dacă există utilizatori care nu au fost migrați în cloud, nu puteți direcționa înregistrarea CNAME de descoperire automată în cloud până când nu ați migrat toți utilizatorii.

  • Dacă o organizație anulează atribuirea Exchange după migrarea tuturor cutiilor poștale locale din cloud, informațiile de utilizator legate de mesaje din cutia poștală din cloud se vor pierde. Instrumentul de sincronizare a directorului Microsoft Online Services (DirSync) elimină date (cum ar fi adresele proxy) din obiectul cutie poștală din cloud, deoarece cutia poștală locală nu mai există și DirSync nu o poate asocia cu cutia poștală din cloud corespunzătoare.

Soluția este să efectuați conversia cutiei poștale locale la un utilizator cu e-mail activat (MEU) din organizația dvs. locală după ce cutia poștală a utilizatorului a fost migrată în cloud. Când efectuați conversia unei cutii poștale locale la MEU:

  • Adresele proxy dintr-o cutie poștală bazată pe cloud sunt copiate în noul MEU; dacă anulați atribuirea Exchange, aceste adrese proxy sunt păstrate în continuare în Active Directory.

  • Proprietățile MEU permit instrumentului DirSync să asocieze MEU cu cutia poștală din cloud corespunzătoare.

  • Serviciul de descoperire automată utilizează MEU pentru a conecta Outlook la cutia poștală din cloud după ce utilizatorul creează un profil Outlook nou.

Scripturi PowerShell pentru crearea MEU

Puteți utiliza scripturile de mai jos pentru a colecta informații despre cutiile poștale bazate pe cloud și a efectua conversia cutiilor poștale Exchange 2007 în MEU.

Următorul script colectează informații din cutiile poștale în cloud și le salvează într-un fișier CSV. Rulați mai întâi acest script.

Copiați scriptul de mai jos și dați-i numele de fișier 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

Următorul script face conversia cutiilor poștale Exchange 2007 locale în MEU. Rulați acest script după ce ați rulat scriptul pentru a colecta informații din cutiile poștale în cloud.

Copiați scriptul de mai jos într-un fișier .txt, apoi salvați fișierul și dați-i numele de fișier 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

Pașii de configurare pentru conversia cutiilor poștale locale la MEU

Urmați acești pași pentru a finaliza procesul.

  1. Copiați ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 și fișierul CSV utilizat pentru a rula grupul de migrare în același director de pe serverul local.

  2. Redenumiți fișierul CSV de migrare migration.csv.

  3. . În componenta de administrare Exchange, rulați următoarea comandă. Scriptul presupune că fișierul CSV se află în același director și se numește migration.csv.

    .\ExportO365UserInfo.ps1

    Vi se va solicita să utilizați sesiunea curentă sau să deschideți o nouă sesiune.

  4. Tastați n și apăsați pe Enter pentru a deschide o sesiune nouă.

    Scriptul rulează, apoi salvează fișierul Cloud.csv în directorul de lucru curent.

  5. Introduceți acreditările de administrator pentru organizația dvs. bazată pe cloud, apoi faceți clic pe OK.

  6. Rulați următoarea comandă într-o nouă sesiune în componenta de administrare Exchange. Această comandă presupune că ExportO365UserInfo.ps1 și Cloud.csv se află în același director.

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

    De exemplu:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Scriptul face conversia cutiilor poștale locale la MEU pentru toți utilizatorii incluși în Cloud.csv.

  7. Verificați dacă au fost creați noii MEU. În Utilizatori și computere Active Directory, procedați astfel:

    1. Faceți clic pe Acțiune > Găsire

    2. Faceți clic pe fila Exchange

    3. Selectați Afișați doar destinatarii Exchange, apoi selectați Utilizatori cu adrese de e-mail externe.

    4. Faceți clic pe Găsire acum.

    Cutiile poștale care au fost convertite la MEU sunt listate sub Rezultatele căutării.

  8. Folosiți Utilizatori și computere Active Directory, Editare ADSI sau Ldp.exe pentru a verifica dacă următoarele proprietăți MEU sunt completate cu informațiile corecte.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×