Konvertér Exchange 2007-postkasser til mailaktiverede brugere

Når du har fuldført en faseinddelt migrering, skal du konvertere postkasserne til e-mailaktiverede brugere, så postkasser automatisk kan oprette forbindelse til skytjenestens postkasse.

Hvorfor skal postkasser konverteres til e-mailaktiverede brugere?

Hvis du har gennemført en faseinddelt migrering i Exchange for at overføre din organisations lokale Exchange 2007-postkasser til Office 365, og du vil administrere skybaserede brugere fra din lokale organisation – ved hjælp af Active Directory – skal du konvertere de lokale postkasser til e-mailaktiverede brugere (MEUs). Hvorfor? Der sker to ting, når en postkasse er blevet overflyttet til skyen i en faseinddelt overførsel i Exchange:

  • En bruger har en lokal postkasse og en skybaseret postkasse.

  • Mail, der sendes til brugerens lokale postkasse, videresendes til brugerens skybaserede postkasse. Dette sker, fordi TargetAddress-egenskaben i den lokale postkasse udfyldes med den skybaserede postkasses eksterne routingadresse under overførselsprocessen. Det betyder, at brugerne skal oprette forbindelse til deres skybaserede postkasser for at få adgang til deres mail.

Denne funktionsmåde resulterer i to problemer:

  • Hvis en person bruger Microsoft Outlook til at åbne sin postkasse, forsøger Autodiscover-tjenesten stadig at oprette forbindelse til den lokale postkasse, og brugeren vil ikke kunne oprette forbindelse til sin skybaserede postkasse. Hvis der er brugere, der ikke er blevet overført til skyen, kan du ikke pege din Autodiscover CNAME-post til skyen, før alle brugere er overført.

  • Hvis en organisation udfaser Exchange, når alle lokale postkasser er overført til skyen, går beskedrelaterede brugeroplysninger i den skybaserede postkasse tabt. Katalogsynkroniseringsværktøjet Microsoft Online Services (DirSync) fjerner data (f.eks. proxyadresser) fra objektet for den skybaserede postkasse, fordi den lokale postkasse ikke længere findes, og DirSync kan ikke afstemme den med den tilsvarende skybaserede postkasse.

Løsningen er at konvertere den lokale postkasse til en e-mailaktiveret bruger (MEU) i din lokale organisation, når brugerens postkasse er blevet overført til skyen. Når du konverterer en lokal postkasse til en MEU:

  • Proxyadresser fra en skybaseret postkasse kopieres til den nye MEU, hvis du udfaser Exchange, bevares disse proxyadresser fortsat i Active Directory.

  • Egenskaberne for MEU'en gør det muligt for DirSync at matche MEU'en med dens tilsvarende skybaserede postkasse.

  • Tjenesten Autodiscover bruger MEU'en til at forbinde Outlook til den skybaserede postkasse, når brugeren opretter en ny Outlook-profil.

PowerShell-scripts til at oprette MEUs

Du kan bruge de nedenstående scripts til at indsamle oplysninger om de skybaserede postkasser og til at konvertere Exchange 2007-postkasser til MEUs.

Følgende script indsamler oplysninger fra skytjenestens postkasser og gemmer dem i en CSV-fil. Kør dette script først.

Kopiér nedenstående script og giv det et filnavn, 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

Det følgende script konverterer lokale Exchange 2007-postkasser til MEUs. Kør dette script, når du har kørt scriptet til indsamling af oplysninger fra skytjenestens postkasser.

Kopiér scriptet nedenfor til en .txt-fil. Gem filen under filnavnet 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

Trinvis fremgangsmåde til konvertering af lokale postkasser til MEUs

Følg disse trin for at fuldføre processen.

  1. Kopiér ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 og den CSV-fil, der bruges til at køre overførselsbatchen, til den samme mappe på din lokale server.

  2. Omdøb overførsels-CSV-filen til migration.csv.

  3. . I shell til Exchange-administration skal du køre følgende kommando. Scriptet forudsætter, at CSV-filen er i den samme mappe og hedder migration.csv.

    .\ExportO365UserInfo.ps1

    Du bliver bedt om at bruge den eksisterende session eller åbne en ny session.

  4. Skriv n , og tryk på Enter for at åbne en ny session.

    Scriptet kører og gemmer derefter Cloud.csv-filen i den aktuelle arbejdsmappe.

  5. Angiv legitimationsoplysninger for administratorer for din skybaserede organisation, og klik derefter på OK.

  6. Kør den følgende kommando i en ny session af shell til Exchange-administration. Denne kommando forudsætter, at ExportO365UserInfo.ps1 og Cloud.csv er placeret i den samme mappe.

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

    Det kunne f.eks. være:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Scriptet konverterer lokale postkasser til MEUs for alle brugere, der er inkluderet i Cloud.csv.

  7. Kontrollér, at de nye MEUs er blevet oprettet. Gør følgende i Active Directory-brugere og -computere:

    1. Klik på Handling > Søg

    2. Klik på Exchange-fanen

    3. Vælg Vis kun Exchange-modtagere, og vælg derefter Brugere med ekstern mailadresse.

    4. Klik på Find nu.

    De postkasser, der er blevet konverteret til MEUs, er angivet under Søgeresultater.

  8. Du kan bruge Active Directory-brugere og -computere, ADSI Edit eller Ldp.exe til at bekræfte, at følgende MEU-egenskaber er udfyldt med de korrekte oplysninger.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Udvid dine færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×