Převedení poštovních schránek Exchange 2007 na uživatele s podporou pošty

Jakmile dokončíte fázovanou migraci, převeďte poštovní schránky na uživatele pošty, aby se mohly automaticky připojovat ke cloudovým poštovním schránkám.

Proč převádět poštovní schránky na uživatele pošty?

Pokud jste dokončili fázovanou migraci Exchange, při které jste migrovali místní poštovní schránky organizace z Exchange 2007 do Office 365, a teď chcete používat Active Directory ke správě cloudových uživatelů z místní organizace, měli byste převést místní poštovní schránky na uživatele pošty (MEU). Proč? Po migraci poštovní schránky do cloudu pomocí fázované migrace Exchange dojde ke dvěma věcem:

  • Uživatel bude mít místní i cloudovou poštovní schránku.

  • Pošta poslaná do místní poštovní schránky uživatele se přepošle do jeho cloudové schránky. Dojde k tomu proto, že se během procesu migrace do vlastnosti TargetAddress místní poštovní schránky zapíše vzdálená adresa směrování, která patří cloudové poštovní schránce. To znamená, že aby se uživatelé dostali ke svým e-mailům, musejí se připojit ke cloudovým poštovním schránkám.

V důsledku toho vzniknou dva problémy:

  • Pokud někdo otevře svoji poštovní schránku přes Microsoft Outlook, služba Automatická konfigurace se bude stále pokoušet připojit k místní schránce a uživatel se nebude moct připojit ke své cloudové schránce. Pokud schránky některých uživatelů nebyly součástí migrace, záznam CNAME služby Automatická konfigurace nemůžete odkazovat do cloudu, dokud nebude hotová migrace všech uživatelů.

  • Když organizace po migraci všech místních poštovních schránek do cloudu vyřadí Exchange z provozu, informace o uživatelích související se zasíláním zpráv se z cloudu ztratí. Nástroj pro synchronizaci adresáře služeb Microsoft Online Services (synchronizační nástroj služby Azure Active Directory) odebere data (jako např. adresy proxy serveru) z objektu cloudové poštovní schránky, protože místní poštovní schránka už neexistuje a DirSync ji nemůže přiřadit k příslušné cloudové schránce.

Řešení je následující: Až provedete migraci místních poštovních schránek do cloudu, ve své místní organizaci převedete místní poštovní schránky na uživatele pošty (MEU). Když převádíte místní poštovní schránku na uživatele pošty (MEU):

  • Adresy proxy serveru z cloudové poštovní schránky se zkopírují do nového uživatele pošty (MEU). Když vyřadíte Exchange z provozu, tyto adresy proxy serveru zůstanou zachované ve službě Active Directory.

  • Vlastnosti uživatele pošty (MEU) umožňují synchronizačními nástroji služby Azure Active Directory spárovat daného uživatele pošty s odpovídající cloudovou poštovní schránkou.

  • Až si uživatel vytvoří nový profil Outlooku, služba Automatická konfigurace pomocí uživatele pošty (MEU) připojí Outlook ke cloudové poštovní schránce.

Skripty PowerShellu pro vytvoření uživatelů pošty (MEU)

Následující skripty můžete použít ke shromažďování informací o cloudových poštovních schránkách a k převedení poštovních schránek Exchange 2007 na uživatele pošty (MEU).

Následující skript shromažďuje informace z cloudových poštovních schránek a ukládá je do souboru CSV. Tento skript spusťte jako první.

Zkopírujte následující skript a pojmenujte ho 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

Následující skript převede místní poštovní schránky Exchange 2007 na uživatele pošty (MEU). Tento skript spusťte po spuštění skriptu, který shromažďuje informace z cloudových poštovních schránek.

Zkopírujte následující skript do souboru .txt. Pak soubor uložte a pojmenujte ho 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

Jak nastavit převedení místních poštovních schránek na uživatele pošty (MEU)

Proces dokončíte tímto postupem:

  1. Zkopírujte skript ExportO365UserInfo.ps1, soubor Exchange2007MBtoMEU.ps1 a soubor CSV, který jste použili pro spuštění dávky migrace, do stejného adresáře na vašem místním serveru.

  2. Soubor CSV přejmenujte na migration.csv.

  3. . V prostředí Exchange Management Shell spusťte následující příkaz. Skript předpokládá, že soubor CSV je ve stejném adresáři a jmenuje se migration.csv.

    .\ExportO365UserInfo.ps1

    Zobrazí se výzva, abyste použili stávající relaci nebo otevřeli novou.

  4. Novou relaci otevřete tak, že zadáte n a stisknete Enter.

    Skript se spustí a pak do aktuálního pracovního adresáře uloží soubor Cloud.csv.

  5. Zadejte přihlašovací údaje správce vaší cloudové organizace a klikněte na OK.

  6. V nové relaci prostředí Exchange Management Shell spusťte následující příkaz. Tento příkaz předpokládá, že ExportO365UserInfo.ps1 a Cloud.csv jsou umístěné ve stejném adresáři.

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

    Příklady:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Skript převede místní poštovní schránky všech uživatelů, které najde v souboru Cloud.csv, na uživatele pošty (MEU).

  7. Zkontrolujte vytvoření nových uživatelů pošty (MEU). V Active Directory v nabídce Uživatelé a počítače postupujte takto:

    1. Klikněte na Akce > Najít.

    2. Klikněte na kartu Exchange.

    3. Vyberte Zobrazit jenom příjemce Exchange a pak vyberte Uživatelé s externí e-mailovou adresou.

    4. Klikněte na Najít.

    Poštovní schránky převedené na uživatele pošty (MEU) jsou uvedené ve výsledcích hledání.

  8. Použijte nabídku Uživatelé a počítače služby Active Directory, editor ADSI nebo program Ldp.exe a ověřte, jestli jsou do následujících vlastností uživatele pošty (MEU) doplněné správné informace.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×