Migration des dossiers publics Exchange 2010 vers Exchange 2013

Introduction

Une des grandes nouveautés avec Exchange 2013 réside dans la prise en charge des dossiers publics au sein du DAG. Je vous propose de regarder, le déroulement d’une migration de ce type.

Prérequis

Sur l’infrastructure Exchange 2010, être en SP3 minimum
Sur l’infrastructure Exchange 2013, sur cette plate-forme CU2

Ne pas oublier les permissions nécessaire, faire parti du rôle : « Organization Management »
Vous pourrez retrouver ici le déroulement officiel dans la Technet : http://technet.microsoft.com/en-us/library/jj150486(v=exchg.150).aspx

Les scripts nécessaires, ne pas hésiter à télécharger les dernières versions (mis à jour le 04/09): http://www.microsoft.com/en-us/download/details.aspx?id=38407

Déroulement en pratique :

  • On commence par les opérations permettant d’extraire la structure existante. Commandes à mener sur un des serveurs Exchange 2010 hébergeant une copie des dossiers publics :

Get-PublicFolder -Recurse | Export-CliXML C:PFMigrationLegacy_PFStructure.xml
Get-PublicFolderStatistics | Export-CliXML C:PFMigrationLegacy_PFStatistics.xml
Get-PublicFolder -Recurse | Get-PublicFolderClientPermission | Select-Object Identity,User -ExpandProperty AccessRights | Export-CliXML C:PFMigrationLegacy_PFPerms.xml

Après avoir extrait la structure, les éléments et les permissions, cela vous génère 3 fichiers :

  • Maintenant il faut générer la structure que l’on va créer sur Exchange 2013, placer les scripts précèdent dans le répertoire « Script » de votre serveur Exchange 2010 et lancer les commandes suivantes :

.Export-PublicFolderStatistics.ps1 c:PFMigrationpfmap.csv <FQDN du serveur source>

  • Pour finaliser la structure cible des dossiers publics sur Exchange 2013, nous allons définir la taille Maximum. Dans mon contexte, la taille est bien supérieure au contenu des dossiers publics, Ainsi une unique boite de dossier public sera nécessaire. Si vous définissez une taille inférieure à votre contenu ce script permet le calcul du nombre de boite nécessaire pour atteindre la taille totale de vos dossiers publics sur 2010.

.PublicFolderToMailboxMapGenerator.ps1 1024MB c:PFMigrationpfmap.csv c:PFMigrationpfmapfoldertombx.csv

Le résultat en fixant la taille à 1024MB

Ensuite, on peut modifier le nom de la boite de dossier public pour la mettre en cible sur son environnement :

  • Ainsi tous les éléments sont maintenant au vert pour passer à la création coté Exchange 2013 La commande pour créer la boite aux lettres de dossier public :

New-Mailbox -PublicFolder PF-Principal -HoldForMigration:$true

  • Il est maintenant tant de lancer la migration des dossiers publics :

New-PublicFolderMigrationRequest -SourceDatabase (Get-PublicFolderDatabase -Server WVSRV2) -CSVData (Get-Content c:PFMigrationpfmapfoldertombx.csv -Encoding Byte)

Vous pouvez consulter l’avancement grâce à la commande : Get-PublicFolderMigrationRequest | Get-PublicFolderMigrationRequestStatistics

Si votre migration se déroule bien, vous devez atteindre le step : « Autosuspended » à 95%

  • A ce moment, il est temps de finaliser la migration en bloquant les dossiers publics sur l’infrastructure Exchange 2010 (attention = interruption de service pour les utilisateurs) Le but étant d’empêcher toute nouvelle modification des DPs pendant la finalisation de la migration :

Set-OrganizationConfig -PublicFoldersLockedForMigration:$true

Ce changement de paramétrage met un certain temps à être pris en charge par l’infrastructure Exchange 2010.

  • Puis lancer le différentiel et la finalisation :

Set-PublicFolderMigrationRequest -Identity PublicFolderMigration -PreventCompletion:$false

Resume-PublicFolderMigrationRequest -Identity PublicFolderMigration

Ce qui nous donne le résultat :

  • Une fois la migration terminée, il nous reste à tester les DPs 2013 :

Set-Mailbox -Identity francois -DefaultPublicFolderMailbox PF-Principal
Get-Mailbox -PublicFolder | Set-Mailbox -PublicFolder -IsExcludedFromServingHierarchy $false
Set-OrganizationConfig -PublicFolderMigrationComplete:$true

A vous !