Share via


Script options for migrating mailboxes from Exchange 2003 to Exchange 2010

I recently came across a customer query of migrating mailboxes from Exchange 2003 to Exchange 2010 via a script. Sharing the options that I had discussed with him

(There could be more so please share your comments Smile )

Option1

1.            Create a text file with the alias of each Exchange 2003 mailbox that you want to move to Exchange 2010 per line saved as C:\Temp\ListOfExchange2003MailboxAlias.txt

2.            Put the following in a text file with a .ps1 extension for example Exchange2003MailboxMoveRequest.ps1

a.            Foreach ($Exchange2003Mailbox  in (Get-Content C:\Temp\ListOfExchange2003MailboxAlias.txt)) {New-MoveRequest -Identity $Exchange2003Mailbox -TargetDatabase ReplaceWithExchange2010MailboxDatabase}

3.            Use Task Scheduler to schedule the script to run at whatever time you want

Option2

https://social.technet.microsoft.com/Forums/en-US/exchange2010/thread/c1ea6f2c-5e37-4ab9-9dcc-c649be832e9c

Option 3

https://blogs.catapultsystems.com/tharrington/archive/2010/06/15/mailbox-migration-to-exchange-2010-powershell.aspx

For increasing parallel migrations

1. Configuration file change to increase parallel migrations - https://markswinkels.nl/2011/04/migrate-mailbox-from-exchange-2003-to-exchange-2010/

Comments

  • Anonymous
    August 03, 2012
    Hi everyone. I'm new to the sport of scripting with PowerShell (or scripting in general for that matter) and can use some help creating a PS script to do the following: Get user list from input file Move those mailboxes to a specific mailbox database, accepting large data loss Enable archive mailbox on a specific database for the moved mailboxes Disable active sync on the moved mailboxes Enable Single Item Recovery on the moved mailboxes Lastly clears the move request. Here's what I've come up with so far which works but as you can see there are 5 different cmdlets, I would need help combining them: Get-Content C:migrationusers.txt | New-MoveRequest -TargetDatabase MBXDB01 -BadItemLimit 100 -AcceptLargeDataLoss Followed by running: get-moverequest | Enable-Mailbox -Archive -ArchiveDatabase MBXDBA01 And then: get-moverequest | set-CASMailbox -ActiveSyncEnabled:$False To enable single item recovery I: get-moverequest | Set-Mailbox -SingelItemRecoveryEnabled $True Lastly, I use the following cmdlet to clear the move request Get-Moverequest  | clear-moverquest Any help would be greatly appreciated.

  • Anonymous
    October 02, 2012
    Is there a way to target the databases involved (-TargetDatabase) dynamically, using the New-MoveRequest command?