Chuyển đổi hộp thư Exchange 2007 thành người dùng hỗ trợ thư

Sau khi bạn đã hoàn tất di chuyển theo giai đoạn, hãy chuyển đổi các hộp thư thành người dùng hỗ trợ thư để các hộp thư có thể tự động kết nối đến hộp thư điện toán đám mây.

Tại sao lại chuyển đổi hộp thư thành người dùng hỗ trợ thư?

Nếu bạn đã hoàn tất di chuyển Exchange theo giai đoạn để di chuyển hộp thư tại chỗ trong Exchange 2007 của tổ chức bạn sang Office 365 và bạn muốn quản lý người dùng trên nền điện toán đám mây từ tổ chức tại chỗ của mình—bằng cách sử dụng Active Directory—bạn nên chuyển đổi hộp thư tại chỗ thành người dùng hỗ trợ thư (MEU). Tại sao? Có hai điều xảy ra sau khi một hộp thư được di chuyển vào đám mây trong di chuyển Exchange theo giai đoạn:

  • Một người dùng có một hộp thư tại chỗ và một hộp thư điện toán đám mây.

  • Thư được gửi đến hộp thư tại chỗ của người dùng sẽ được chuyển tiếp tới hộp thư điện toán đám mây của họ. Điều này xảy ra vì trong quá trình di chuyển, địa chỉ định tuyến từ xa của hộp thư điện toán đám mây được điền vào thuộc tính TargetAddress trên hộp thư tại chỗ. Điều này có nghĩa rằng người dùng cần kết nối với hộp thư điện toán đám mây của mình để truy nhập email.

Hành vi này dẫn đến hai sự cố:

  • Nếu một người sử dụng Microsoft Outlook để mở hộp thư, dịch vụ Tự động phát hiện vẫn tìm cách kết nối đến hộp thư tại chỗ và người dùng đó sẽ không thể kết nối với hộp thư điện toán đám mây của mình. Nếu có những người dùng chưa được di chuyển vào đám mây thì bạn sẽ không thể trỏ bản ghi CNAME Tự động phát hiện của mình tới đám mây cho đến khi tất cả người dùng đều được di chuyển.

  • Nếu một tổ chức ngừng sử dụng Exchange sau khi di chuyển tất cả các hộp thư tại chỗ vào đám mây, thông tin người dùng liên quan đến thư trên hộp thư điện toán đám mây sẽ bị mất. Công cụ Đồng bộ hóa Thư mục Microsoft Online Services (DirSync) loại bỏ dữ liệu (chẳng hạn như địa chỉ proxy) khỏi đối tượng hộp thư điện toán đám mây vì hộp thư tại chỗ không còn tồn tại và DirSync không thể khớp hộp thư đó với hộp thư điện toán đám mây tương ứng.

Giải pháp là chuyển đổi hộp thư tại chỗ thành người dùng hỗ trợ thư (MEU) trong tổ chức tại chỗ của bạn sau khi hộp thư của người dùng đã được di chuyển vào đám mây. Khi bạn chuyển đổi một hộp thư tại chỗ thành một MEU:

  • Các địa chỉ proxy từ hộp thư trên nền điện toán đám mây được sao chép vào MEU mới; nếu bạn ngừng sử dụng Exchange thì các địa chỉ proxy này vẫn được giữ lại trong Active Directory.

  • Các thuộc tính của MEU cho phép DirSync khớp MEU với hộp thư điện toán đám mây tương ứng của MEU đó.

  • Dịch vụ Tự động phát hiện sử dụng MEU để kết nối Outlook với hộp thư điện toán đám mây sau khi người dùng tạo một hồ sơ Outlook mới.

Tập lệnh PowerShell để tạo MEU

Bạn có thể sử dụng các tập lệnh dưới đây để thu thập thông tin về hộp thư trên nền điện toán đám mây và chuyển đổi hộp thư Exchange 2007 thành MEU.

Tập lệnh sau thu thập thông tin từ hộp thư điện toán đám mây của bạn và lưu vào một tệp CSV. Chạy tập lệnh này trước tiên.

Sao chép tập lệnh bên dưới và đặt tên tệp là 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

Tập lệnh sau chuyển đổi hộp thư Exchange 2007 tại chỗ thành MEU. Chạy tập lệnh này sau khi bạn đã chạy tập lệnh để thu thập thông tin từ các hộp thư điện toán đám mây.

Sao chép tập lệnh bên dưới thành một tệp .txt rồi lưu và đặt tên tệp là 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

Các bước thiết lập để chuyển đổi hộp thư tại chỗ thành MEU

Làm theo các bước sau để hoàn thành quy trình.

  1. Sao chép ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 và tệp CSV đã dùng để chạy lô di chuyển vào cùng thư mục trong máy chủ tại chỗ của bạn.

  2. Đổi tên tệp CSV di chuyển thành migration.csv.

  3. . Trong Exchange Management Shell, chạy lệnh sau đây. Tập lệnh giả định rằng tệp CSV nằm trong cùng một thư mục và được đặt tên là migration.csv.

    .\ExportO365UserInfo.ps1

    Bạn sẽ được nhắc sử dụng phiên hiện có hoặc mở một phiên mới.

  4. Nhập n, rồi nhấn Enter để mở một phiên mới.

    Tập lệnh chạy, rồi lưu tệp Cloud.csv vào thư mục làm việc hiện tại.

  5. Nhập thông tin xác thực người quản trị cho tổ chức trên nền điện toán đám mây của bạn, rồi bấm OK.

  6. Chạy lệnh sau đây trong phiên Exchange Management Shell mới. Lệnh này giả định rằng ExportO365UserInfo.ps1 và Cloud.csv nằm trong cùng một thư mục.

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

    Ví dụ:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Tập lệnh chuyển đổi hộp thư tại chỗ thành MEU cho tất cả người dùng được bao gồm trong Cloud.csv.

  7. Xác minh rằng đã tạo MEU mới. Trong Người dùng và Máy tính Active Directory, hãy làm như sau:

    1. Bấm vào Hành động > Tìm kiếm

    2. Bấm vào tab Exchange

    3. Chọn Chỉ hiển thị người nhận Exchange, rồi chọn Người dùng có địa chỉ email bên ngoài.

    4. Bấm vào Tìm Ngay.

    Những hộp thư đã được chuyển đổi thành MEU được liệt kê dưới Kết quả tìm kiếm.

  8. Sử dụng Người dùng và Máy tính Active Directory, Chỉnh sửa ADSI hoặc Ldp.exe để xác minh các thuộc tính MEU sau đây được điền đúng thông tin.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • ProxyAddresses

    • targetAddress

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×