Mengonversi kotak surat Exchange 2007 untuk pengguna email yang diaktifkan

Setelah menyelesaikan migrasi bertahap, konversi kotak surat ke pengguna dengan dukungan email sehingga kotak surat dapat tersambung ke kotak surat awan secara otomatis.

Mengapa mengonversi kotak surat ke pengguna dengan dukungan email?

Jika telah menyelesaikan migrasi Exchange bertahap untuk melakukan migrasi kotak surat lokal Exchange 2007 organisasi ke Office 365 dan Anda ingin mengelola pengguna berbasis awan dari organisasi lokal menggunakan Direktori Aktif, konversi kotak surat lokal tersebut ke pengguna dengan dukungan email (MEU). Mengapa? Dua hal terjadi setelah kotak surat dimigrasi ke awan dalam migrasi Exhange bertahap:

  • Pengguna memiliki kotak surat lokal dan kotak surat awan.

  • Email yang dikirimkan ke kotak surat lokal pengguna diteruskan ke kotak surat awan mereka. Hal ini terjadi karena selama proses migrasi, properti Alamat Target di kotak surat lokal akan diisi dengan alamat perutean jarak jauh dari kotak surat awan. Hal ini berarti bahwa pengguna harus tersambung ke kotak surat awan mereka untuk mengakses email.

Perilaku ini akan menghasilkan dua masalah:

  • Jika seseorang menggunakan Microsoft Outlook untuk membuka kotak surat mereka, layanan Pencarian otomatis masih mencoba tersambung ke kotak surat lokal, dan pengguna tidak akan dapat tersambung ke kotak surat awan mereka. Jika terdapat pengguna yang belum dimigrasi ke awan, Anda tidak dapat mengarahkan data CNAME Autodiscover ke awan hingga semua pengguna dimigrasi.

  • Jika organisasi menonaktifkan Exchange setelah semua kotak surat lokal dimigrasi ke awan, informasi pengguna yang terkait pesan di kotak surat awan akan hilang. Alat Sinkronisasi Direktori Microsoft Online Services (DirSync) menghapus data (seperti alamat proksi) dari objek kotak surat awan karena kotak surat lokal tidak lagi tersedia dan DirSync tidak dapat menyesuaikannya dengan kotak surat awan yang terkait.

Solusinya adalah dengan mengonversi kotak surat lokal ke pengguna dengan dukungan email (MEU) di organisasi lokal Anda setelah kotak surat pengguna tersebut telah dimigrasi ke awan. Saat Anda mengonversi kotak surat lokal ke MEU:

  • Alamat proksi dari kotak surat berbasis awan disalin ke MEU baru; Jika Anda menonaktifkan Exchange, alamat proksi ini tetap dipertahankan dalam Direktori Aktif.

  • Properti MEU mengaktifkan DirSync untuk menyesuaikan MEU dengan kotak surat awan yang terkait.

  • Layanan Pencarian otomatis menggunakan MEU untuk menyambungkan Outlook ke kotak surat awan setelah pengguna membuat profil Outlook baru.

Skrip PowerShell untuk membuat MEU

Anda dapat menggunakan skrip di bawah ini untuk mengumpulkan informasi tentang kotak surat berbasis awan dan untuk mengonversi kotak surat Exchange 2007 ke MEU.

Skrip berikut ini mengumpulkan informasi dari kotak surat awan Anda dan menyimpannya ke file CSV. Jalankan skrip ini terlebih dahulu.

Salin skrip di bawah ini dan berikan nama file 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

Skrip berikut mengonversi kotak surat Exchange 2007 lokal ke MEU. Jalankan skrip ini setelah Anda menjalankan skrip untuk mengumpulkan informasi dari kotak surat awan.

Salin skrip di bawah ini ke file .txt kemudian simpan file lalu simpan sebagai 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

Langkah-langkah penyiapan untuk mengonversi kotak surat lokal ke MEU

Ikuti langkah-langkah ini untuk menyelesaikan proses.

  1. Salin ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1, dan file CSV yang digunakan untuk menjalankan kumpulan migrasi ke direktori yang sama di server lokal Anda.

  2. Mengganti nama file CSV migrasi menjadi migration.csv.

  3. . Jalankan perintah berikut dalam Exchange Management Shell. Skrip mengasumsikan bahwa file CSV terletak dalam direktori yang sama dan bernama migration.csv.

    .\ExportO365UserInfo.ps1

    Anda akan diminta untuk menggunakan sesi yang ada atau membuka sesi baru.

  4. Ketikkann lalu tekan Enter untuk membuka sesi baru.

    Skrip dijalankan kemudian menyimpan file Cloud.csv ke direktori kerja saat ini.

  5. Masukkan kredensial administrator untuk organisasi berbasis awan Anda kemudian klik OK.

  6. Jalankan perintah berikut dalam sesi Exchange Management Shell baru. Perintah ini mengasumsikan bahwa ExportO365UserInfo.ps1 dan Cloud.csv terletak dalam direktori yang sama.

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

    Misalnya:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Skrip mengonversi kotak surat lokal ke MEU untuk semua pengguna yang disertakan dalam Cloud.csv.

  7. Verifikasi bahwa MEU baru telah dibuat. Di Komputer dan Pengguna Direktori Aktif, lakukan hal berikut:

    1. Klik Tindakan > Temukan

    2. Klik tab Exchange

    3. Pilih Perlihatkan hanya penerima Exchange, kemudian pilih Pengguna dengan alamat email eksternal.

    4. Klik Temukan Sekarang.

    Kotak surat yang telah dikonversi ke MEU tercantum di bawah Hasil pencarian.

  8. Gunakan Komputer dan Pengguna Direktori Aktif, Edit ADSI, atau Ldp.exe untuk memverifikasi bahwa properti MEU berikut telah diisi dengan informasi yang benar.

    • legacyExchangeDN

    • email

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung ke Office Insiders

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×