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 )
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
http://social.technet.microsoft.com/Forums/en-US/exchange2010/thread/c1ea6f2c-5e37-4ab9-9dcc-c649be832e9c
Option 3
http://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 - http://markswinkels.nl/2011/04/migrate-mailbox-from-exchange-2003-to-exchange-2010/
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:\migration\users.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.
Is there a way to target the databases involved (-TargetDatabase) dynamically, using the New-MoveRequest command?