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 )


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


Option 3

For increasing parallel migrations

1. Configuration file change to increase parallel migrations -

Comments (2)

  1. Denali2010 says:

    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.

  2. Andor says:

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

Skip to main content