แปลงกล่องจดหมาย Exchange 2007 ไปเป็นผู้ใช้อีเมลที่เปิดใช้งานจดหมาย

หลังจากที่คุณทำการโอนย้ายแบบกำหนดลำดับขั้นเสร็จแล้ว ให้แปลงกล่องจดหมายเป็นผู้ใช้อีเมลที่เปิดใช้งานจดหมาย เพื่อให้กล่องจดหมายต่างๆ สามารถเชื่อมต่อกับกล่องจดหมายในระบบคลาวด์ได้โดยอัตโนมัติ

ทำไมจึงต้องแปลงกล่องจดหมายไปเป็นผู้ใช้อีเมลที่เปิดใช้งานจดหมาย

ถ้าคุณทำการโอนย้ายแบบกำหนดลำดับขั้นใน Exchange เพื่อโยกย้ายกล่องจดหมาย Exchange 2007 ในสถานที่ขององค์กรของคุณไปยัง Office 365 และคุณต้องการจัดการผู้ใช้ที่ใช้ระบบคลาวด์จากภายในองค์กรของคุณด้วย Active Directory คุณควรแปลงกล่องจดหมายในองค์กรเป็นผู้ใช้อีเมลที่เปิดใช้งานจดหมาย (MEU) สาเหตุ สิ่งสองสิ่งจะเกิดขึ้นหลังจากโยกย้ายกล่องจดหมายไปยังระบบคลาวด์ในการโยกย้าย Exchange แบบเป็นระยะ:

  • ผู้ใช้มีกล่องจดหมายภายในองค์กรและกล่องจดหมายระบบคลาวด์

  • จดหมายที่ถูกส่งไปยังกล่องจดหมายภายในองค์กรของผู้ใช้จะถูกส่งต่อไปยังกล่องจดหมายระบบคลาวด์ของพวกเขา ซึ่งจะเกิดขึ้น เนื่องจากระหว่างกระบวนการการโยกย้าย คุณสมบัติ TargetAddress ในกล่องจดหมายภายในองค์กรจะถูกเติมด้วยที่อยู่การกำหนดเส้นทางระยะไกลของกล่องจดหมายระบบคลาวด์ ซึ่งหมายความว่าผู้ใช้จะต้องเชื่อมต่อกับกล่องจดหมายระบบคลาวด์ของพวกเขาเพื่อเข้าถึงอีเมล

ลักษณะการทำงานนี้จะทำให้เกิดปัญหาสองอย่าง:

  • ถ้าผู้ใช้ใช้ Microsoft Outlook เพื่อเปิดกล่องจดหมายของพวกเขา บริการ Autodiscover จะยังคงพยายามเชื่อมต่อกับกล่องจดหมายภายในองค์กร และผู้ใช้จะไม่สามารถเชื่อมต่อกับกล่องจดหมายระบบคลาวด์ของพวกเขา ถ้ามีผู้ใช้ที่ยังไม่ได้โยกย้ายไปยังระบบคลาวด์ คุณจะไม่สามารถชี้ระเบียน CNAME Autodiscover ของคุณไปยังระบบคลาวด์จนกว่าผู้ใช้ทุกคนจะถูกโยกย้าย

  • ถ้าองค์กรยกเลิก Exchange หลังจากโยกย้ายกล่องจดหมายภายในองค์กรทั้งหมดไปยังระบบคลาวด์ ข้อมูลผู้ใช้ที่เกี่ยวข้องกับการส่งข้อความบนกล่องจดหมายระบบคลาวด์จะหายไป เครื่องมือการซิงโครไนซ์ไดเรกทอรีของบริการ Microsoft Online (DirSync) จะนำข้อมูล (เช่น ที่อยู่พร็อกซี) ออกจากวัตถุของกล่องจดหมายระบบคลาวด์ เนื่องจากจะไม่มีกล่องจดหมายภายในองค์กรอีกต่อไปและ DirSync จะไม่สามารถจับคู่กับกล่องจดหมายระบบคลาวด์ที่สอดคล้องกันได้

วิธีแก้ไขปัญหาคือให้แปลงกล่องจดหมายภายในองค์กรเป็นผู้ใช้ที่เปิดใช้งานโดยจดหมาย (MEU) ภายในองค์กรของคุณหลังจากโยกย้ายกล่องจดหมายของผู้ใช้ไปยังระบบคลาวด์ เมื่อคุณแปลงกล่องจดหมายภายในองค์กรเป็น MEU:

  • ที่อยู่พร็อกซีจากกล่องจดหมายระบบคลาวด์จะถูกคัดลอกไปยัง MEU ใหม่ ถ้าคุณยกเลิก Exchange ที่อยู่พร็อกซีเหล่านี้จะยังคงถูกเก็บรักษาไว้ใน Active Directory

  • คุณสมบัติของ MEU จะเปิดใช้งาน DirSync เพื่อจับคู่ MEU กับกล่องจดหมายระบบคลาวด์ที่สอดคล้องกัน

  • บริการ Autodiscover จะใช้ MEU เพื่อเชื่อมต่อ Outlook กับกล่องจดหมายระบบคลาวด์หลังจากที่ผู้ใช้สร้างโปรไฟล์ Outlook ใหม่

สคริปต์ PowerShell เพื่อสร้าง MEU

คุณสามารถใช้สคริปต์ด้านล่างเพื่อรวบรวมข้อมูลเกี่ยวกับกล่องจดหมายบนระบบคลาวด์ และแปลงกล่องจดหมาย Exchange 2007 ไปเป็น MEU

สคริปต์ต่อไปนี้จะรวบรวมข้อมูลจากกล่องจดหมายบนระบบคลาวด์ แล้วจะบันทึกเป็นไฟล์ CSV เรียกใช้สคริปต์นี้ก่อน

คัดลอกสคริปต์ทางด้านล่างแล้วตั้งชื่อไฟล์ 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

สคริปต์ต่อไปนี้จะแปลงกล่องจดหมาย Exchange 2007 ในสถานที่เป็น MEU เรียกใช้สคริปต์นี้หลังจากที่คุณได้เรียกใช้สคริปต์รวบรวมข้อมูลจากกล่องจดหมายบนระบบคลาวด์แล้ว

คัดลอกสคริปต์ด้านล่างไปยังไฟล์ .txt แล้วบันทึกไฟล์และตั้งชื่อไฟล์ 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

ขั้นตอนการตั้งค่าเพื่อแปลงกล่องจดหมายในสถานที่เป็น MEU

ทำตามขั้นตอนเหล่านี้เพื่อทำกระบวนการให้เสร็จสิ้น

  1. คัดลอก ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 และไฟล์ CSV ที่ใช้เพื่อเรียกใช้ชุดการโยกย้ายไปยังไดเรกทอรีเดียวกันในเซิร์ฟเวอร์ภายในองค์กรของคุณ

  2. เปลี่ยนชื่อการโยกย้ายไฟล์ CSV เป็น migration.csv

  3. . ใน Exchange Management Shell ให้เรียกใช้คำสั่งต่อไปนี้ สคริปต์จะถือว่าไฟล์ CSV อยู่ในไดเรกทอรีเดียวกันและมีชื่อว่า migration.csv

    .\ExportO365UserInfo.ps1

    คุณจะได้รับพร้อมท์ให้ใช้เซสชันที่มีอยู่หรือเปิดเซสชันใหม่

  4. พิมพ์ n แล้วกด Enter เพื่อเปิดเซสชันใหม่

    สคริปต์จะทำงานและบันทึกไฟล์ Cloud.csv file ไปยังไดเรกทอรีที่กำลังทำงานอยู่ในปัจจุบัน

  5. ใส่ข้อมูลประจำตัวผู้ดูแลระบบสำหรับองค์กรระบบคลาวด์ของคุณ แล้วคลิก ตกลง

  6. เรียกใช้คำสั่งต่อไปนี้ในเซสชัน Exchange Management Shell ใหม่ คำสั่งนี้จะถือว่า ExportO365UserInfo.ps1 และ Cloud.csv อยู่ในไดเรกทอรีเดียวกัน

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

    ตัวอย่างเช่น

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    สคริปต์จะแปลงกล่องจดหมายภายในอง์กรเป็น MEU สำหรับผู้ใช้ทั้งหมดรวมถึงใน Cloud.csv

  7. ตรวจสอบว่า MEU ใหม่ถูกสร้างขึ้นแล้วหรือไม่ ในผู้ใช้และคอมพิวเตอร์ Active Directory ให้ทำต่อไปนี้:

    1. คลิก การดำเนินการ > ค้นหา

    2. คลิกแท็บ Exchange

    3. เลือกแสดงเฉพาะผู้รับ Exchange เท่านั้น แล้วเลือก ผู้ใช้ที่มีที่อยู่อีเมลภายนอก

    4. คลิก ค้นหาเดี๋ยวนี้

    กล่องจดหมายที่ถูกแปลงเป็น MEUs จะอยู่ในรายการใต้ ผลลัพธ์การค้นหา

  8. ใช้ ผู้ใช้และคอมพิวเตอร์ Active Directory, การแก้ไข ADSI หรือ Ldp.exe เพื่อยืนยันว่าคุณสมบัติ MEU ต่อไปนี้มีข้อมูลที่ถูกต้องแล้ว

    • legacyExchangeDN

    • จดหมาย

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×