Exchange 2007 postkastide teisendamine meililoaga kasutajateks

Kui etapiviisiline migreerimine on lõpule viidud, teisendage postkastid meililoaga kasutajateks, et postkastid automaatselt pilvepõhise postkastiga ühendada.

Miks tuleks postkastid teisendada meililoaga kasutajateks?

Kui olete ettevõtte Exchange 2007 kohapealsed postkastid etapiviisiliselt teenusekomplekti Office 365 migreerinud ja soovite pilvepõhiseid kasutajaid hallata kohapealses keskkonnas Active Directory abil, peaks kohapealsed postkastid teisendama meililoaga kasutajateks (MLK). Miks? Pärast postkasti pilveteenusesse migreerimist juhtub Exchange’i etapiviisilise migreerimise käigus kaks asja.

  • Kasutajal on kohapealne ja pilvepõhine postkast.

  • Kasutaja kohapealsesse postkasti saadetud e-post saadetakse edasi pilvepõhisesse postkasti. See juhtub seepärast, et migreerimisprotsessi ajal määratakse kohapealse postkasti atribuudiks TargetAddress pilvepõhise postkasti kaugmarsruutimise aadress. See tähendab, et kasutajad peavad e-postile juurde pääsemiseks looma ühenduse pilvepõhiste postkastidega.

Selle asjaoluga kaasneb kaks probleemi.

  • Kui postkast avatakse Microsoft Outlookis, proovib automaattuvastusteenus luua ühenduse kohapealse postkastiga ja kasutaja ei saa ühendust pilvepõhise postkastiga. Kui mõned kasutajad pole veel pilveteenusesse migreeritud, ei saa te oma automaattuvastusteenuse CNAME-kirjet pilveteenusesse osutada enne, kui kõik kasutajad on migreeritud.

  • Kui asutus eemaldab Exchange’i pärast kõigi kohapealsete postkastide migreerimist pilveteenusesse, läheb pilvepõhise postkasti sõnumsidega seotud kasutajateave kaotsi. Teenuse Microsoft Online Services kataloogisünkroonimisriist (DirSync) eemaldab pilvepõhise postkasti objektist andmed (nt puhveraadressid), kuna kohapealst postkasti enam ei eksisteeri ja DirSync ei suuda seda vastava pilvepõhise postkastiga sobitada.

Lahenduseks on kohapealses asutuses kohapealse postkasti teisendamine meililoaga kasutajaks (MLK) siis, kui kasutaja postkast on pilveteenusesse migreeritud. Kui teisendate kohapealse postkasti MLK-sse, tuleb arvestada järgmist.

  • Pilvepõhise postkasti puhveraadressid kopeeritakse uude MLK-sse; kui eemaldate Exchange’i, säilitatakse neid puhveraadresse Active Directorys.

  • MLK atribuudid võimaldavad DirSyncil sobitada MLK sellele vastava pilvepõhise postkastiga.

  • Automaattuvastusteenus loob Outlooki ja pilvepõhise postkasti vahel ühenduse MLK abil siis, kui kasutaja loob uue Outlooki profiili.

PowerShelli skriptid MLK-de loomiseks

Saate alltoodud skriptide abil koguda teavet pilvepõhiste postkastide kohta ja teisendada Exchange 2007 postkastid MLK-deks.

Järgmine skript kogub pilvepõhistest postkastidest pärit andmeid ja salvestab need CSV-faili. Käivitage esmalt see skript.

Kopeerige alltoodud skript ja andke sellele failinimi 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

Järgmine skript teisendab kohapealsed Exchange 2007 postkastid MLK-deks. Käivitage see skript pärast pilvepõhiste postkastide andmeid koguva skripti käitamist.

Kopeerige alltoodud skript TXT-faili ja salvestage see nimega 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

Kohapealsete postkastide MLK-ks teisendamise häälestusjuhised

Protsessi läbimiseks toimige järgmiselt.

  1. Kopeerige ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 ja migreerimispaketi käivitamiseks kasutatav fail kohapealses serveris samasse kausta.

  2. Nimetage migreerimise CSV-fail ümber nimega migration.csv.

  3. . Käivitage Exchange Management Shellis järgmine käsk. Skript eeldab, et CSV-fail on samas kaustas ja nimega migration.csv.

    .\ExportO365UserInfo.ps1

    Teil palutakse kasutada olemasolevat seanssi või avada uus seanss.

  4. Uue seansi avamiseks tippige täht n ja vajutage sisestusklahvi (Enter).

    Skript käivitub ja Cloud.csv fail salvestatakse seejärel praegusesse töökausta.

  5. Sisestage oma pilvepõhise asutuse administraatori identimisteave ja seejärel klõpsake nuppu OK.

  6. Käivitage uues Exchange Management Shelli seansis järgmine käsk. Käsk eeldab, et ExportO365UserInfo.ps1 ja Cloud.csv asuvad samas kaustas.

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

    Siin on mõned näited:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Skript teisendab kohapealsed postkastid MLK-deks kõigi failis Cloud.csv sisalduvate kasutajate puhul.

  7. Veenduge, et uued MLK-d on loodud. Tehke tööriistas Active Directory Users and Computers järgmist.

    1. Valige Toiming > Otsi.

    2. Klõpsake vahekaarti Exchange.

    3. Märkige ruut Kuva ainult Exchange’i adressaadid ja seejärel ruut Välise meiliaadressiga kasutajad.

    4. Klõpsake nuppu Otsi kohe.

    MLK-deks teisendatud postkastid on loetletud otsingutulemites.

  8. Kasutage tööriista Active Directory Users and Computers, ADSI Edit või Ldp.exe veendumaks, et järgmiste MLK atribuutide väärtused on õiged.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×