Exchange 2007 -sähköpostilaatikoiden muuntaminen sähköpostin käyttäjiksi

Vaiheistetun siirron suorittamisen jälkeen voit muuntaa postilaatikot sähköpostin käyttäjiksi niin, että postilaatikot voivat automaattisesti muodostaa yhteyden pilvipohjaiseen postilaatikkoon.

Miksi postilaatikot kannattaa muuntaa sähköpostin käyttäjiksi?

Jos olet suorittanut vaiheistetun Exchange-siirron organisaation paikallisten Exchange 2007 -postilaatikoiden siirtämiseksi Office 365:een ja haluat hallita pilvipohjaisia käyttäjiä paikallisesta organisaatiosta Active Directoryn avulla, paikalliset postilaatikot kannattaa muuntaa sähköpostin käyttäjiksi (MEU). Miksi? Kun postilaatikko on siirretty pilvipalveluun vaiheistetussa Exchange-siirrossa, tapahtuu kaksi asiaa:

  • Käyttäjällä on paikallinen postilaatikko ja pilvipohjainen postilaatikko.

  • Käyttäjän paikalliseen postilaatikkoon lähetetyt sähköpostiviestit lähetetään edelleen käyttäjän pilvipohjaiseen postilaatikkoon. Tämä johtuu siitä, että siirron aikana paikallisen postilaatikon TargetAddress-ominaisuuteen täytetään pilvipohjaisen postilaatikon etäreititysosoite. Sen vuoksi käyttäjien on muodostettava yhteys pilvipohjaiseen postilaatikkoon, jotta he voivat käyttää sähköpostiaan.

Tämä toimenpide aiheuttaa kaksi ongelmaa:

  • Jos postilaatikon avaamiseen käytetään Microsoft Outlookia, automaattinen hakupalvelu yrittää edelleen muodostaa yhteyden paikalliseen postilaatikkoon, eikä käyttäjä pysty muodostamaan yhteyttä pilvipohjaiseen postilaatikkoon. Jos joitakin käyttäjiä ei ole siirretty pilvipalveluun, et voi määrittää automaattisen haun CNAME-tietuetta pilvipalveluun ennen kuin kaikki käyttäjät on siirretty.

  • Jos organisaatio peruuttaa Exchange-tilauksen sen jälkeen, kun kaikki paikalliset postilaatikot on siirretty pilvipalveluun, pilvipohjaisen postilaatikon viesteihin liittyvät käyttäjätiedot menetetään. Microsoft Online Services -hakemistosynkronointityökalu (DirSync) poistaa tiedot (kuten välityspalvelinosoitteet) pilvipohjaisesta postilaatikosta, koska paikallista postilaatikkoa ei enää ole eikä Dirsync-työkalu voi liittää sitä vastaavaan pilvipohjaiseen postilaatikkoon.

Ratkaisuna on muuntaa paikallinen postilaatikko sähköpostin käyttäjäksi (MEU) paikallisessa organisaatiossa, kun käyttäjän postilaatikko on siirretty pilvipalveluun. Kun muunnat paikallisen postilaatikon sähköpostin käyttäjäksi:

  • Pilvipohjaisen postilaatikon välityspalvelinosoitteet kopioidaan uuteen sähköpostin käyttäjään; jos Exchange on poistettu käytöstä, nämä välityspalvelinosoitteet säilytetään edelleen Active Directoryssä.

  • Sähköpostin käyttäjän ominaisuuksien ansiosta DirSync saadaan vastaamaan sähköpostin käyttäjää ja sen vastaavaa pilvipohjaista postilaatikkoa.

  • Automaattinen hakupalvelu yhdistää Outlookin pilvipohjaiseen postilaatikkoon sähköpostin käyttäjän avulla sen jälkeen, kun käyttäjä on luonut uuden Outlook-profiilin.

PowerShell-komentosarjat sähköpostin käyttäjien luomiseksi

Voit alla olevien komentosarjojen avulla kerätä tietoja pilvipohjaisista postilaatikoista ja muuntaa Exchange 2007 -postilaatikot sähköpostin käyttäjiksi.

Seuraava komentosarja kerää tietoja pilvipohjaisista postilaatikoista ja tallentaa ne CSV-tiedostoon. Suorita tämä komentosarja ensin.

Kopioi alla oleva komentosarja ja anna sille tiedostonimi 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

Seuraava komentosarja muuntaa paikalliset Exchange 2007 -postilaatikot sähköpostin käyttäjiksi. Suorita tämä komentosarja, kun olet suorittanut komentosarjan tietojen keräämiseksi pilvipohjaisista postilaatikoista.

Kopioi alla oleva komentosarja .txt-tiedostoon, ja tallenna sitten tiedosto ja anna sille tiedostonimi 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

Määritysohjeet paikallisten sähköpostilaatikoiden muuntamiseksi sähköpostin käyttäjiksi

Suorita prosessi seuraavien ohjeiden mukaisesti.

  1. Kopioi siirtoerän ajossa käytettävät ExportO365UserInfo.ps1-, Exchange2007MBtoMEU.ps1- ja CSV-tiedostot samaan hakemistoon paikallisella palvelimella.

  2. Anna CSV-siirtotiedostolle uusi nimi migration.csv.

  3. . Suorita Exchange-palvelimen hallintaliittymässä seuraava komento. Komentosarja olettaa, että CSV-tiedosto on samassa hakemistossa ja sen nimi on migration.csv.

    .\ExportO365UserInfo.ps1

    Sinua kehotetaan käyttämään aiempaa istuntoa tai avaamaan uusi istunto.

  4. Kirjoita n ja paina Enter uuden istunnon avaamiseksi.

    Komentosarja suoritetaan, ja se tallentaa sitten Cloud.csv-tiedoston nykyiseen työhakemistoon.

  5. Kirjoita järjestelmänvalvojan tunnistetiedot pilvipohjaiselle organisaatiolle ja napsauta sitten OK.

  6. Suorita uudessa Exchange-palvelimen hallintaliittymässä seuraava komento. Tämä komento olettaa, että ExportO365UserInfo.ps1 ja Cloud.csv sijaitsevat samassa hakemistossa.

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

    Esimerkki:

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Komentosarja muuntaa paikalliset postilaatikot sähköpostin käyttäjiksi kaikille käyttäjille, jotka sisältyvät Cloud.csv-tiedostoon.

  7. Varmista, että on luotu uusia sähköpostin käyttäjiä. Toimi Active Directory Users and Computers -työkalussa seuraavasti:

    1. Napsauta Toiminto > Etsi.

    2. Napsauta Exchange-välilehteä.

    3. Valitse Näytä vain Exchange-vastaanottajat, ja valitse sitten Käyttäjät, joilla on ulkoinen sähköpostiosoite.

    4. Napsauta Etsi nyt.

    Sähköpostin käyttäjiksi muunnetut postilaatikot on lueteltu Hakutulokset-kohdassa.

  8. Tarkista Active Directory Users and Computers -työkalun, ADSI Editin tai Ldp.exen avulla, että seuraaviin sähköpostin käyttäjien ominaisuuksiin on täytetty oikeat tiedot.

    • legacyExchangeDN

    • sähköposti

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×