تحويل علب بريد Exchange 2007 إلى المستخدمين الممكّن لهم البريد

بعد إكمال عملية ترحيل مرحلي، قم بتحويل علب البريد إلى المستخدمين الممكّن لهم البريد بحيث تتمكن علب البريد من الاتصال تلقائياً بعلبة البريد الموجودة على السحابة.

لماذا يجب تحويل علب البريد إلى المستخدمين الممكّن لهم البريد؟

إذا كنت قد أكملت عملية ترحيل مرحلي لـ Exchange لترحيل علب بريد Exchange 2007 المحلية الخاصة بمؤسستك إلى Office 365 وكنت تريد إدارة المستخدمين المستندين إلى السحابة من مؤسستك المحلية، باستخدام Active Directory، فيجب أن تقوم بتحويل علب البريد المحلية إلى المستخدمين الممكّن لهم البريد (MEU). ما هو السبب؟ يحدث أمران بعد ترحيل علبة بريد إلى السحابة في عملية ترحيل مرحلي لـ Exchange:

  • يملك المستخدم علبة بريد محلية وعلبة بريد على السحابة.

  • تتم إعادة توجيه البريد المرسل إلى علبة البريد المحلية الخاصة بالمستخدم إلى علبة البريد الخاصة به على السحابة. يحدث ذلك لأنه أثناء عملية الترحيل، يتم ملء الخاصية TargetAddress في علبة البريد المحلية بعنوان التوجيه البعيد من علبة البريد الموجودة على السحابة. وهذا يعني أنه يجب على المستخدمين الاتصال بعلب البريد الخاصة بهم على السحابة للوصول إلى البريد الإلكتروني.

ينتج عن هذا السلوك مشكلتين:

  • في حال كان الشخص يستخدم Microsoft Outlook لفتح علبة بريده، لا تزال خدمة الكشف التلقائي تحاول الاتصال بعلبة البريد المحلية، ولن يتمكن المستخدم من الاتصال بعلبة بريده الموجودة على السحابة. في حال كان هناك مستخدمين لم يتم ترحيلهم إلى السحابة، فلا يمكنك توجيه سجل CNAME للكشف التلقائي إلى السحابة حتى يتم ترحيل جميع المستخدمين.

  • إذا قامت مؤسسة بتعطيل Exchange بعد ترحيل كل علب البريد المحلية إلى السحابة، فسيتم فقدان معلومات المستخدم ذات الصلة بالمراسلة في علبة البريد الموجودة على السحابة. تقوم أداة مزامنة دليل Microsoft Online Services بإزالة البيانات (مثل عناوين الوكيل) من عنصر علبة البريد على السحابة لأن علبة البريد المحلية لم تعد موجودة وتعذر على DirSync مطابقتها مع علبة البريد المقابلة على السحابة.

يتمثل الحل في تحويل علبة البريد المحلية إلى مستخدمين ممكّن لهم البريد (MEU) في مؤسستك المحلية بعد أن يتم ترحيل علبة بريد المستخدم إلى السحابة. عندما تقوم بتحويل علبة بريد محلية إلى MEU:

  • يتم نسخ عناوين الوكيل من علبة بريد مستندة إلى السحابة إلى MEU الجديد؛ في حال قمت بتعطيل Exchange، يتم الاحتفاظ بعناوين الوكيل هذه في Active Directory.

  • تعمل خصائص MEU على تمكين DirSync لمطابقة MEU مع علبة البريد المقابلة الموجودة على السحابة.

  • تستخدم خدمة الكشف التلقائي 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 إلى الدليل المشغّل حالياً.

  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. انقر فوق بحث الآن.

    يتم إدراج علب البريد التي تم تحويلها إلى مستخدمين MEU ضمن نتائج البحث.

  8. استخدم "أجهزة الكمبيوتر ومستخدمي Active Directory" أو "تحرير ADSI" أو Ldp.exe للتحقق من ملء خصائص MEU التالية بالمعلومات الصحيحة.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×