Convertir des boîtes aux lettres Exchange 2007 en utilisateurs à extension messagerie

À l’issue d’une migration intermédiaire, convertissez les boîtes aux lettres en utilisateurs à extension messagerie afin que les boîtes aux lettres puissent se connecter automatiquement à la boîte aux lettres cloud.

Pourquoi convertir des boîtes aux lettres en utilisateurs à extension messagerie ?

Si vous avez effectué une migration Exchange intermédiaire pour migrer les boîtes aux lettres locales Exchange 2007 de votre organisation vers Office 365, et souhaitez gérer les utilisateurs dans le cloud à partir de votre organisation locale (à l’aide d’Active Directory), vous devez convertir les boîtes aux lettres locales en utilisateurs à extension messagerie. Pourquoi ? Après la migration d’une boîte aux lettres vers le cloud dans le cadre d’une migration Exchange intermédiaire, deux événements se produisent :

  • Un utilisateur dispose d’une boîte aux lettres locale et d’une boîte aux lettres cloud.

  • Les messages envoyés à la boîte aux lettres locale sont transférés vers la boîte aux lettres cloud. Cela se produit parce que, pendant le processus de migration, la propriété TargetAddress de la boîte aux lettres locale prend la valeur de l’adresse de routage distante de la boîte aux lettres cloud. Cela signifie que les utilisateurs doivent se connecter à leurs boîtes aux lettres cloud pour pouvoir accéder à leur courrier électronique.

Ce comportement engendre deux problèmes :

  • Si une personne utilise Microsoft Outlook pour ouvrir sa boîte aux lettres, le service de découverte automatique continue à tenter de se connecter à la boîte aux lettres locale, et l’utilisateur ne peut pas se connecter à sa boîte aux lettres cloud. Si des utilisateurs n’ont pas été migrés vers le cloud, vous ne pouvez pas pointer votre enregistrement CNAME de découverte automatique vers le cloud tant que tous les utilisateurs n’ont pas été migrés.

  • Si une organisation désaffecte Exchange après la migration de toutes les boîtes aux lettres locales vers le cloud, les informations de courrier des utilisateurs dans la boîte aux lettres cloud sont perdues. L’outil Synchronisation d’annuaires Microsoft Online Services (DirSync) supprime des données (par exemple, les adresses proxy) de l’objet boîte aux lettres cloud, parce que la boîte aux lettres locale n’existe plus et que DirSync ne peut pas la faire correspondre à la boîte aux lettres cloud correspondante.

La solution consiste à convertir la boîte aux lettres locale en utilisateur à extension messagerie dans votre organisation locale après la migration de la boîte lettres vers le cloud. Lorsque vous convertissez une boîte aux lettres locale en utilisateur à extension messagerie :

  • Les adresses proxy d’une boîte aux lettres cloud sont copiées vers le nouvel utilisateur à extension messagerie. Si vous désaffectez Exchange, ces adresses proxy sont toujours conservées dans Active Directory.

  • Les propriétés de l’utilisateur à extension messagerie permettent à DirSync d’établir une correspondance entre l’utilisateur à extension messagerie et sa boîte aux lettres cloud correspondante.

  • Le service de découverte automatique utilise l’utilisateur à extension messagerie pour connecter Outlook à la boîte aux lettres cloud une fois que l’utilisateur a créé un profil Outlook.

Scripts PowerShell pour la création d’utilisateurs à extension messagerie

Les scripts ci-dessous permettent de recueillir des informations sur les boîtes aux lettres dans le cloud, et de convertir les boîtes aux lettres Exchange 2007 en utilisateurs à extension messagerie.

Le script suivant collecte des informations de vos boîtes aux lettres cloud et les enregistre dans un fichier CSV. Exécutez ce script en premier.

Copiez le script ci-dessous et donnez-lui le nom de fichier 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

Le script suivant convertit les boîtes aux lettres Exchange 2007 locales en utilisateurs à extension messagerie. Exécutez-le après avoir exécuté le script collectant les informations des boîtes aux lettres cloud.

Copiez le script ci-dessous dans un fichier .txt, puis enregistrez celui-ci sous 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

Étapes de configuration pour convertir des boîtes aux lettres locales en utilisateurs à extension messagerie

Suivez ces étapes pour achever le processus.

  1. Copiez ExportO365UserInfo.ps1, Exchange2007MBtoMEU.ps1 et le fichier CSV utilisé pour exécuter le lot de migration dans le même annuaire sur votre serveur local.

  2. Renommez le fichier CSV de migration migration.csv.

  3. Dans l’environnement de ligne de commande Exchange Management Shell, exécutez la commande suivante. Le script suppose que le fichier CSV se trouve dans le même annuaire et se nomme migration.csv.

    .\ExportO365UserInfo.ps1

    Vous devez utiliser la session existante ou en ouvrir une nouvelle.

  4. Tapez n, puis appuyez sur Entrée pour ouvrir une nouvelle session.

    Le script s’exécute et enregistre le fichier Cloud.csv dans l’annuaire de travail en cours.

  5. Entrez les informations d’identification d’administrateur pour votre organisation cloud, puis cliquez sur OK.

  6. Exécutez la commande suivante dans une nouvelle session de l’environnement de ligne de commande Exchange Management Shell. Cette commande suppose que les fichiers ExportO365UserInfo.ps1 et Cloud.csv se trouvent dans le même annuaire.

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

    Par exemple :

    .\Exchange2007MBtoMEU.ps1 DC1.contoso.com

    Le script convertit les boîtes aux lettres locales en utilisateurs à extension messagerie pour tous les contacts répertoriés dans le fichier Cloud.csv.

  7. Vérifiez que les nouveaux utilisateurs à extension messagerie ont été créés. Dans Utilisateurs et ordinateurs Active Directory, procédez comme suit :

    1. Cliquez sur Action > Rechercher.

    2. Cliquez sur l’onglet Exchange.

    3. Sélectionnez Afficher uniquement les destinataires Exchange, puis Utilisateurs avec une adresse e-mail externe.

    4. Cliquez sur Rechercher maintenant.

    Les boîtes aux lettres converties en utilisateurs à extension messagerie sont répertoriées sous Résultats de la recherche.

  8. Utilisez Utilisateurs et ordinateurs Active Directory, Éditeur ADSI ou Ldp.exe pour vérifier que les propriétés d’utilisateur à extension messagerie suivantes sont complétées avec les informations appropriées.

    • legacyExchangeDN

    • mail

    • msExchMailboxGuid

    • proxyAddresses

    • targetAddress

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×