Para mover usuarios desde Exchange 2003/2007 hacia Exchange 2010, se puede usar un script que de manera automatizada mueva buzones hacia los servidores de mailbox en Exchange 2010, partiendo de la información contenida en un archivo csv.
Antes de mover buzones podría ser necesario validar si los usuarios a mover existen en el dominio. Para esto, se puede ejecutar un script que de igual forma parte del mismo archivo csv.
El archivo csv es de la forma:
El campo useriD corresponde al alias en Exchange del usuario y el campo TargetDB a la base de datos destino donde se moverá el usuario.
El script para validar los usuarios es el siguiente:
$UserstoDB = import-csv e:\scripts\MM.csv
foreach ($Record in $UserstoDB)
{
$users = $record.userid
$database = $record.targetdb
New-MoveRequest –identity $users –TargetDatabase “$Database” -whatif
}
Una vez validado los usuarios se puede proceder a moverlos hacia las bases de datos mediante el siguiente script:
$UserstoDB = import-csv e:\scripts\MM.csv
foreach ($Record in $UserstoDB)
{
$users = $record.userid
$database = $record.targetdb
New-MoveRequest –identity $users –TargetDatabase “$Database”
}
A este script lo llamaremos MM.ps1
De igual forma se puede establecer una tarea que se ejecute a una hora predeterminada. En este caso, la tarea se llamará Move Mailbox y tendrá las siguientes configuraciones. Para ello, se utiliza la herramienta Task Scheduler y se crea una tarea como sigue:
Clic derecho en Task Scheduler y hacemos clic Create Task
Aparecerá la siguiente imagen. Seleccionamos las opciones Run whether user is logged on or not para forzar que se ejecute el script si el usuario no ha iniciado sesión y la opción Run with highest privileges. Seleccionamos Windows Server 2012.
En la pestaña Triggers, hacemos clic en New
En este caso el script solo se ejecutará una vez para el día 04/0713 a las 21:30 pm. Esta configuración dependerá del requerimiento a satisfacer con el script.
En la pestaña Actions, hacemos clic en New
La siguiente ruta será colocada en la opción “Program/Script”
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Y el siguiente argumento en la opción “Add arguments (optional)” donde se puede apreciar cual es el script a ejecutarse en la tarea programada (mm.ps1)
-version 2.0 -noexit -command ". ‘C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1’; Connect-ExchangeServer -auto; c:\scripts\mm.ps1"
Dejamos las pestañas Conditions y Settings con los valores por defecto:
Confirmamos la clave para programar la tarea
Por último aparecerá la tarea como se muestra en la siguiente imagen y que se ejecutará a las 21:30 pm del día 04/07/13