Comment planifier la migration des boîtes sur Exchange 2010!

La migration de boîte vers Exchange 2010 ne peut se faire qu’à partir d’un serveur Exchange 2010. Or cette fonctionnalité, gérée par un service, ne permet plus de planifier la migration dans l'outil d'administration. Le mode graphique ne permet pas non plus de mettre les demandes en attente, ce qui est fort dommage !

Dans Exchange 2003, la demande de migration planifiée restait associée à un programme en mémoire qui décomptait le temps restant avant le démarrage de l’opération. Ceci impliquait que la session de l’administrateur devait rester ouverte, et que le moindre redémarrage ou problème réseau à l’heure exacte prévue pour la migration rendaient caduque la demande.

Dans Exchange 2010, le déplacement de boîtes entre serveurs Exchange 2010 devient une opération normale réalisable dans la journée qui ne bloquera plus l’utilisateur d’où l’utilité moindre d’une planification!

Néanmoins, lors de la migration depuis Exchange 2003, comme l’utilisateur est bloqué, il est souvent souhaitable de programmer les déplacements.

1ère Etape : Désigner les boîtes à déplacer

Voici un exemple partant d’une liste d’utilisateurs :

'UserA”,’UserB’,’USERC’ | New-MoveRequest -TargetDatabase DB2 –suspend

Si l’on ajoute l’option «* -batchname GroupeMigration1* », il sera possible de gérer et de sélectionner plus facilement toutes les demandes attachée à ce nom de batch.

Souvent il sera plus simple de partir de la liste des boîtes basée sur le serveur source (ou sur une banque précise) :

get-mailbox | where {$_.servername -eq 'ANCIENSERVEUR' } | New-MoveRequest -TargetDatabase DB2 -suspend

2ème Etape : Lister toutes les demandes en attente

get-MoveRequest -suspend $true

Variante listant toutes les demandes attachées à un nom de batch précis.

get-MoveRequest -suspend $true –batchname GroupeMigration1

3ème Etape : Déclencher le transfert des demandes en attente

get-MoveRequest -suspend $true | resume-moverequest

Déclencher uniquement un batch précis :

get-MoveRequest -suspend $true –batchname GroupeMigration1 | resume-moverequest

Cette instruction sera placée dans un fichier « ExecuteMoveRequest.ps1 ». Le planificateur de tache devra lancer PowerShell.exe, charger l’extension Exchange et lancer le script contenant l’instruction. Voici les écrans de configuration correspondants


Ne pas oublier d’activer la tâche et de définir l’heure et le jour adéquats!

Voici le détail de la commande exécutée:

-command ". ' C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto;.'c:\executeMoveRequest.ps1' "

La partie en rouge correspond au lancement habituel du Shell Exchange.

La partie en vert contiendra le nom et le chemin complet vers votre script de déclenchement.

Lorsque la tâche se sera exécutée, vérifier le résultat correspondant au code d’erreur (Last Run Result) qui doit être égal à zéro.

A noter que les demandes de déplacement doivent être effacées des boîtes après migration, afin d’autoriser un nouveau déplacement. Les boîtes déplacées sont identifiées par un petit drapeau vert!