המרת תיבות דואר של Exchange 2007 למשתמשים מותאמי דואר

לאחר שתסיים את ההעברה בשלבים, המר את תיבות הדואר למשתמשים מותאמי דואר כך שתיבות הדואר יוכלו להתחבר באופן אוטומטי לתיבת הדואר בענן.

מדוע להמיר תיבות דואר למשתמשים מותאמי דואר?

אם ביצעת העברה בשלבים של Exchange כדי להעביר את תיבות הדואר המקומיות של Exchange 2007 של הארגון ל- Office 365 וברצונך לנהל משתמשים מבוססי ענן מהארגון המקומי באמצעות Active Directory, עליך להמיר את תיבות הדואר המקומיות למשתמשים מותאמי דואר (MEUs). מדוע? שני דברים מתרחשים לאחר שתיבת דואר מועברת לענן בהעברת Exchange בשלבים:

  • למשתמש יש תיבת דואר מקומית ותיבת דואר בענן.

  • דואר שנשלח אל תיבת הדואר המקומית של המשתמש מועבר אל תיבת הדואר שלו בענן. הסיבה לכך היא שבמהלך ההעברה, המאפיין TargetAddress בתיבת הדואר המקומית מאוכלס בכתובת הניתוב המרוחקת של תיבת הדואר בענן. משמעות הדבר היא כי משתמשים צריכים להתחבר לתיבות הדואר שלהם בענן כדי לגשת לדואר האלקטרוני שלהם.

אופן פעולה זה גורם לשתי בעיות:

  • אם אדם מסוים משתמש ב- Microsoft Outlook כדי לפתוח את תיבת הדואר שלו, שירות הגילוי האוטומטי עדיין מנסה להתחבר לתיבת הדואר המקומית והמשתמש אינו יכול להתחבר אל תיבת הדואר שלו בענן. אם ישנם משתמשים שטרם הועברו לענן, לא תוכל לכוון את רשומת CNAME של הגילוי האוטומטי לענן עד שכל המשתמשים יועברו.

  • אם ארגון מוציא את Exchange משירות לאחר שכל תיבות הדואר המקומיות מועברות לענן, פרטי משתמשים הקשורים להעברת הודעות בתיבת הדואר בענן יאבדו. כלי סינכרון מדריכי הכתובות של Microsoft Online Services (‏DirSync) מסיר נתונים (כגון כתובות Proxy) מאובייקט תיבת הדואר בענן מאחר שתיבת הדואר המקומית כבר אינה קיימת ו- DirSync אינו יכול להתאים אותה לתיבת הדואר המקבילה בענן.

הפתרון הוא להמיר את תיבת הדואר המקומית למשתמש מותאם דואר (MEU) בארגון המקומי לאחר שתיבת הדואר של המשתמש הועברה לענן. בעת המרת תיבת דואר מקומית למשתמש מותאם דואר:

  • כתובות ה- Proxy מתיבת דואר המבוססת על ענן מועתקות ל- MEU החדש; אם תוציא את Exchange משירות, כתובות Proxy אלה עדיין יישמרו ב- Active Directory.

  • מאפייני ה- MEU מאפשרים ל- DirSync להתאים את ה- MEU לתיבת הדואר המקבילה שלו בענן.

  • שירות הגילוי האוטומטי עושה שימוש ב- MEU כדי לחבר את Outlook לתיבת הדואר בענן לאחר שהמשתמש יוצר פרופיל Outlook חדש.

קבצי Script של PowerShell ליצירת משתמשים מותאמי דואר

תוכל להשתמש בקבצי ה- Script שלהלן כדי לאסוף מידע על תיבות הדואר המבוססות על ענן ולאחר מכן להמיר את תיבות הדואר של Exchange 2007 למשתמשים מותאמי דואר.

קובץ ה- Script הבא אוסף מידע מתוך תיבות הדואר בענן ושומר אותו בקובץ CSV. תחילה, הפעל קובץ Script זה.

העתק את קובץ ה- Script שלהלן ותן לו שם קובץ 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

קובץ ה- Script הבא ממיר תיבות דואר מקומיות של Exchange 2007 למשתמשים מותאמי דואר. הפעל קובץ Script זה לאחר שהפעלת את קובץ ה- Script לאיסוף מידע מתיבות הדואר בענן.

העתק את קובץ ה- Script שלהלן לקובץ ‎.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

שלבי הגדרה להמרת תיבות דואר מקומיות למשתמשים מותאמי דואר

בצע שלבים אלה כדי להשלים את התהליך.

  1. העתק את ExportO365UserInfo.ps1‏, את Exchange2007MBtoMEU.ps1 ואת קובץ ה- CSV המשמש להפעלת אצוות ההעברה לאותה ספריה בשרת המקומי.

  2. שנה את שמו של קובץ ה- CSV של ההעברה ל- migration.csv.

  3. . במעטפת ניהול Exchange, הפעל את הפקודה הבאה. קובץ ה- Script כתוב מתוך הנחה שקובץ ה- CSV נמצא באותה ספריה ונקרא migration.csv.

    .\ExportO365UserInfo.ps1

    תוצג בפניך הודעה עם בקשה לבחור בין שימוש בהפעלה הקיימת או פתיחת הפעלה חדשה.

  4. הקלד n והקש Enter כדי לפתוח הפעלה חדשה.

    קובץ ה- Script פועל ולאחר מכן שומר את הקובץ Cloud.csv בספריית העבודה הנוכחית.

  5. הזן את אישורי מנהל המערכת עבור הארגון שלך המבוסס על ענן ולאחר מכן לחץ על אישור.

  6. הפעל את הפקודה הבאה בהפעלה חדשה של מעטפת ניהול Exchange. פקודה זו כתובה מתוך הנחה ש- ExportO365UserInfo.ps1 ו- Cloud.csv ממוקמים באותה ספריה.

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

    לדוגמה:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    קובץ ה- Script ממיר תיבות דואר מקומיות למשתמשים מותאמי דואר עבור כל המשתמשים הכלולים בקובץ ה- Cloud.csv.

  7. ודא שהמשתמשים מותאמי הדואר החדשים נוצרו. במסך 'משתמשים ומחשבים של Active Directory', בצע את הפעולות הבאות:

    1. לחץ על 'פעולה' > 'חיפוש'

    2. לחץ על הכרטיסיה Exchange

    3. בחר הצג נמעני Exchange בלבד ולאחר מכן בחר משתמשים עם כתובת דואר אלקטרוני חיצונית.

    4. לחץ על חפש כעת.

    תיבות הדואר שהומרו למשתמשים מותאמי דואר מפורטות תחת תוצאות חיפוש.

  8. השתמש במשתמשים ומחשבים של Active Directory, עריכת ADSI או Ldp.exe כדי לוודא שאוכלסו פרטים נכונים עבור המאפיינים הבאים של משתמש מותאם דואר.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×