Team blog of MCS @ Middle East and Africa

This blog is created by Microsoft MEA HQ near shoring team, and it aims to share knowledge with the IT community.With its infrastructure and development sides,It brings to you the proven best practices and real world experiences from Subject Matter Experts
Follow Us On Twitter! Subscribe To Our Blog! Contact Us

Move Mailboxes methods from Exchange 2003/2007 to Exchange 2010

Move Mailboxes methods from Exchange 2003/2007 to Exchange 2010

  • Comments 2
  • Likes

Typically in the upgrade scenario moving mailboxes will be done from Exchange 2007/2003 mailbox databases (Source) to Exchange 2010 mailbox databases (Target).

When moving mailboxes from Microsoft Exchange Server 2007 Service Pack 2 (SP2) to Exchange Server 2010, the following should be considered:

· The move process is performed online, and end-users will be able to access their mailboxes during the move.

· Mailboxes cannot be moved from Exchange 2007 SP1 or earlier, the source Mailbox server must be running Exchange 2007 SP2 or later.

· Perform the move from a server running Exchange 2010 by using the Exchange Management Console or the move request cmdlet in the Exchange Management Shell, however Move-Mailbox cmdlet in Exchange 2007 cannot be used to move mailboxes to Exchange 2010 servers.

Move Mailboxes using Exchange Management Console

1. In the consoled tree, navigate to Recipient Configuration > Mailbox.

2. In the result pane, select one or more mailboxes that planned to be moved.

3. In the action pane, click New Local Move Request.

4. On the Introduction page, configure the following settings:

· A new move request will be placed for the following mailboxes this box displays the mailboxes that was selected in the result pane, if you want to add or remove mailboxes, click Cancel, and then make the changes in the result pane.

· Target mailbox database click Browse to open the Select Mailbox Database dialog box. Use this dialog box to select the target mailbox database to which you want to move the mailboxes. Click OK to return to the wizard.

5. On the Move Options page, specify how you want to manage corrupted messages if they are found.

· Skip the mailbox Click this button to specify that mailboxes containing corrupted messages will not be moved.

· Skip the corrupted messages Click this button to move the mailbox, but not to move any corrupted messages, if you select this option you’ll need to set the Maximum number of messages to skip.

· Maximum number of messages to skip Use this list to specify a number between -1 and 2,147,483,647, use -1 to skip an unlimited number of corrupted messages.

6. On the New Local Move Request page, review you configuration settings. Click New to create the move request. Click Back to make changes.

7. On the Completion page, review the following, and then click Finish to close the wizard:

· A status of Completed indicates that the wizard completed the task successfully.

· A status of Failed indicates that task wasn’t completed, if the task fails, review the summary for an explanation, and then click Back to make any configuration changes.

8. Click Finish to close the wizard.

Move Mailboxes using PowerShell or MoveMailbox.ps1 script

In this section we will cover Moving Mailboxes using PowerShell cmdlet and using MoveMailbox.psa1 script.

· Test Whether a mailbox is ready for move:

This example uses the WhatIf switch to test whether Tony Smith’s mailbox is ready to move to the new database DB01 and if there are any error within the command, when use WhatIf switch the system performs checks on the mailbox, and if the mailbox isn’t ready to move, the error will be generated:

New-MoveRequest -Identity 'tony@Contoso.com -TargetDatabase DB01 -WhatIf

· Create a local move request:

This example moves Tony Smith’s mailbox to the new database DB01:

New-MoveRequest -Identity 'tony@alpineskihouse.com' -TargetDatabase DB01

· Create a batch move request:

This example create a batch move request for all mailboxes on the database DB01 and moves to the database DB02 with the BatchName parameter valude DB01ToDB02

Get-Mailbox -Database DB01 | New-MoveRequest -TargetDatabase DB02 -BatchName "DB01toDB02"

· Create a move request that suspends before completion:

This example creates a move request that is suspended after all the initial content is moved, but before the mailbox is locked down and switched over to the new location:

New-MoveRequest -Identity 'tony@alpineskihouse.com' -TargetDatabase DB01 -SuspendWhenReadyToComplete

· Create a move request that is processed by a specific server:

This example creates a move request that is processed by the specific Client Access server CAS1.contoso.com, which has the Microsoft Exchange Mailbox Replication service installed:

New-MoveRequest -Identity 'tony@alpineskihouse.com' -TargetDatabase DB01 -MRSServer CAS1.Contoso.com

· Create a suspend move request:

This example creates a batch move request that is suspended for all mailboxes on database DB01, you may want to run this command if want to create the move request now and then resume it in the evening, when e-mail traffic is low:

Get-Mailbox -Database DB01 | New-MoveRequest -TargetDatabase DB02 -BatchName "26August"

· Move Mailboxes by using the MoveMailbox.ps1 Script in the Shell:

Similar to the Move-Mailbox cmdlet in Microsoft Exchange 2007, the MoveMailbox.ps1 script provides a synchronous management experience for moving mailboxes, by default scripts are installed at “C:\Program Files\Microsoft\Exchange Server\V14\Scripts”,

MoveMailbox.ps1 performs the following tasks:

a. Creates a local move request.

b. Waits for the mailbox move to complete.

c. Clears the move request after it completes.

MoveMailbox.ps1 include two parameter sets, the 1st parameter set moves a single mailbox, or you can pipeline mailboxes into the command, the 2nd parameter set moves all mailboxes hosted on a specific database, or you can pipeline database objects into the command to move all mailboxes that reside on those mailbox databases, these are different example that we can follow while using MailboxMove.ps1 to move batch of mailboxes as the following:

· Example 1:

In this example moves the mailboxes that begin with “ay”, if these mailboxes reside on the mailbox database DB1, this example uses the DatabaseMap parameter to move them to mailbox database DBA, if these mailboxes reside on DB2, the example moves them to mailbox database DBB:

Get-Mailbox ay* | .\MoveMailbox.ps1 –DatabaseMap @{“DB1”=”DBA”;”DB2”=”DBB”}

· Example 2:

This example moves Tony Smith’s mailbox to DB2:

.\MoveMailbox.ps1 -Identity "Tony@Contoso.com" -TargetDatabase "DB2"

· Example 3:

This example moves all mailboxes that reside on mailbox database DB1 to database DB2:

.\MoveMailbox.ps1 -MailboxDatabase DB1 -TargetDatabase DB2

· Example 4:

This example uses the Get-MailboxDatabase cmdlet to retrieve all mailbox database objects whose mailbox database begins with “DB1”, and then pipeline the result to the MoveMailbox.ps1 script:

Get-MailboxDatabase DB1* | .\MoveMailbox.ps1 -DatabaseMap @{"DB10"=DBA;"DB11"="DBB";"DB12"="DBA"}

Comments
  • Good writes up ! Thanks for sharing the step by step guide and information about the inbuilt cmdlets or command line parameters to perform mailboxes migration from one environment to another. However, due to some limitations these built-in methods do not work and users have to face serious data loss situation. Corrupted items in Exchange information store databases and users access rights are major issues which halt the migration process.

    To resolve such situations and move successfully from one version of MS Exchange server to another, there are some third party vendors in the market which have made the migration process very simple and secure. One such popular and advanced application that helped me to move 7800 exchange mailboxes from Exchange 2007 server to Exchange 2010 sp1 server, can be downloaded from here: http://www.techricky.com/exchange-server-recovery/

    The software has millions of satisfied users across the world and allows users to move single as well as multiple mailboxes in a single click. It not only rebuilds the corrupted/damaged items but also recovery of lost data.

    Larry

  • Good writes up ! Thanks for sharing the step by step guide and information about the inbuilt cmdlets or command line parameters to perform mailboxes migration from one environment to another. However, due to some limitations these built-in methods do not work and users have to face serious data loss situation. Corrupted items in Exchange information store databases and users access rights are major issues which halt the migration process.

    To resolve such situations and move successfully from one version of MS Exchange server to another, there are some third party vendors in the market which have made the migration process very simple and secure. One such popular and advanced application that helped me to move 7800 exchange mailboxes from Exchange 2007 server to Exchange 2010 sp1 server, can be downloaded from here: http://www.techricky.com/exchange-server-recovery/

    The software has millions of satisfied users across the world and allows users to move single as well as multiple mailboxes in a single click. It not only rebuilds the corrupted/damaged items but also recovery of lost data.

    Larry

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment