Konverter Exchange 2007-postbokser til e-postaktiverte brukere

Når du har fullført en trinnvis overføring, kan du konvertere postbokser til e-postaktiverte brukere slik at postkassene automatisk kobles til postkassen i skyen.

Hvorfor konvertere postboksene til e-postaktiverte brukere?

Hvis du har fullført en trinnvis Exchange-overføring for å kunne overføre organisasjonens lokale postbokser i Exchange 2007 til Office 365, og du vil administrere skybaserte brukere fra den lokale organisasjonen ved hjelp av Active Directory, bør du konvertere lokale postbokser til e-postaktiverte brukere (MEUs). Hvorfor? To ting skjer når en postboks er overført til skyen i en trinnvis Exchange-overføring:

  • Brukeren har en postboks lokalt, og en postboks i skyen.

  • E-post sendt til brukerens lokale postboks videresendes også til postboksen i skyen. Dette skjer fordi under overføringsprosessen blir TargetAddress-egenskapen i den lokale postboksen også fylt inn med ekstern ruteradresse til postboksen i skyen. Dette betyr at brukere må koble seg på sine postkasser i skyen for å få tilgang til e-post.

Denne fremgangsmåten resulterer i to problemer:

  • Hvis en person bruker Microsoft Outlook til å åpne postkassen sin, prøver Autosøk-tjenesten fortsatt å koble til den lokale postboksen, og brukeren vil ikke være i stand til å koble til postkassen i skyen. Hvis det er brukere som ikke har blitt overført til skyen, kan du ikke peke Autodiscover CNAME-posten til skyen før alle brukerne er overført.

  • Hvis en organisasjon avvikler Exchange etter at alle lokale postbokser er overført til skyen, vil meldingsrelatert brukerinformasjon på postboksen i skyen gå tapt. Katalogsynkroniseringsverktøyet for Microsoft Online Services (DirSync) fjerner data (for eksempel proxy-adresser) fra objekter som er i postboksen i skyen, fordi den lokale postkassen ikke lenger eksisterer og DirSync kan ikke sammenligne den med den tilsvarende postkassen i skyen.

Løsningen er å konvertere den lokale postboksen til en e-postaktivert bruker (MEU) i den lokale organisasjonen etter at brukerens postboks har blitt flyttet til skyen. Når du konverterer en lokal postboks til en MEU:

  • Proxy-adresser fra en skybasert postboks kopieres til den nye MEU, og hvis du avvikler Exchange, vil disse proxy-adressene fortsatt bli værende i Active Directory.

  • Egenskapene til MEU gjør det mulig for DirSync å sammenligne MEU med den tilsvarende postkassen i skyen.

  • Autosøk-tjenesten bruker MEU for å koble Outlook til postkassen i skyen når brukeren oppretter en ny Outlook-profil.

PowerShell-skript til å opprette MEU-er

Du kan bruke skriptene nedenfor til å samle inn informasjon om de skybaserte postboksene og konvertere Exchange 2007-postbokser til MEU-er.

Følgende skript samler inn informasjon fra postboksene i skyen og lagrer dem til en CSV-fil. Kjør dette skriptet først.

Kopiere skriptet nedenfor, og gi det filnavnet 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

Følgende skript konverterer de lokale Exchange 2007-postboksene til MEU-er. Kjør dette skriptet etter at du har kjørt skriptet for å samle inn informasjon fra postboksene i skyen.

Kopier skriptet nedenfor til en TXT-fil og lagre 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

Fremgangsmåten for å konvertere lokale postbokser til MEU-er

Følg disse trinnene for å fullføre prosessen.

  1. Kopier ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 og den CSV-filen som ble brukt til å kjøre overføringsgruppen, til den samme mappen på lokal server.

  2. Endre navn på CSV-filen for overføring til migration.csv.

  3. . Kjør følgende kommando i Exchange Management Shell. Skriptet forutsetter at CSV-filen er i samme katalog, og har navnet migration.csv.

    .\ExportO365UserInfo.ps1

    Du vil bli bedt om å bruke eksisterende økt, eller åpne en ny økt.

  4. Skriv inn n, og trykk på ENTER for å åpne en ny økt.

    Skriptet kjører og lagrer deretter filen Cloud.csv til gjeldende arbeidsmappe.

  5. Skriv inn administratorlegitimasjonen for din skybaserte organisasjon, og klikk deretter på OK.

  6. Kjør følgende kommando i en ny Exchange Management Shell-økt. Denne kommandoen forutsetter at ExportO365UserInfo.ps1 og Cloud.csv er plassert i samme mappe.

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

    Eksempel:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Skriptet konverterer lokale postbokser til MEU-er for alle brukere som er inkludert i Cloud.csv.

  7. Kontroller at de nye MEU-ene har blitt opprettet. I Active Directory-brukere og datamaskiner gjør du følgende:

    1. Klikk på Handling > Finn

    2. Klikk på Exchange-fanen

    3. Velg Vis bare Exchange-mottakere, og velg deretter Brukere med ekstern e-postadresse.

    4. Klikk på Finn.

    Postboksene som er konvertert til MEU-er, er oppført under Søkeresultater.

  8. Bruk Active Directory-brukere og datamaskiner, ADSI Edit eller Ldp.exe til å kontrollere at følgende MEU-egenskaper fylles inn med riktig informasjon.

    • LegacyExchangeDN

    • mail

    • msExchMailboxGuid

    • ProxyAddresses

    • targetAddress

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×