How to Move Mailboxes in Exchange Server 2010

Mailbox moves in previous versions of Exchange were interactive in nature, in that a wizard, script or shell command was used to move the mailbox and it occured in real time.

In Exchange Server 2010 mailbox moves are now handled using move requests.  In short, the move request is submitted into a queue and processed by the Mailbox Replication Service (MRS), which runs on Client Access servers.

Exchange 2010 mailbox move requests can be created using either the Exchange Management Console or the Exchange Management Shell.

  • Creating Move Requests using the Exchange Management Console
  • Using Filters to Choose Mailboxes for Move Requests
  • Creating Move Requests using the Exchange Management Shell

There are only a few minor differences between the console and shell for performing mailbox moves, for the most part it comes down to which one you are most comfortable with.

CREATING MOVE REQUESTS USING THE EXCHANGE MANAGEMENT CONSOLE

Launch the Exchange Management Console and navigate to Recipient Configuration/Mailbox.

Select a mailbox, or hold the CTRL key to select multiple mailboxes to move as a group.

Selecting mailboxes to move in the Exchange Management Console
Selecting mailboxes to move in the Exchange Management Console

In the Actions pane click on New Local Move Request.  Local Move Requests are for moves within the same Exchange organization.

Start a new Local Move Request
Start a new Local Move Request

All of the mailboxes selected for the New Local Move Request wizard will be moved to the same target mailbox database.  Click the Browse button to choose a target mailbox database.

Browse to select a target mailbox database
Browse to select a target mailbox database

Select the mailbox database to move the pilot group to and then click OK.  Click Next to continue.

Choose the target mailbox database
Choose the target mailbox database

Leave the Move Settings as the default settings and click Next to continue.  If you encounter issues with corrupt items you may need to create a new move request for those mailboxes and choose to skip corrupted messages.

Configure the settings for the mailbox move requests
Configure the settings for the mailbox move requests

Review the list of mailboxes that will be moved and then click New to create the move requests.

Review the mailboxes to be moved
Review the mailboxes to be moved

Click Finish to close the wizard.

The move requests are created and will be processed by the Exchange server.  You can view the status of the move requests in the Exchange Management Console under Recipient Configuration/Move Request.

View the status of the mailbox move requests
View the status of the mailbox move requests

Right-click a move request and choose Properties to see the status of that move request.

View the progress of a mailbox move request
View the progress of a mailbox move request

USING FILTERS TO CHOOSE MAILBOXES FOR MOVE REQUESTS

When performing mailbox migrations you can use filters to make the task of selecting mailboxes to be moved simpler.

Open the Exchange Management Console and navigate to Recipient Configuration/Mailbox.  Click on Create Filter at the top of the console.

Creating filters in the Exchange Management Console
Creating filters in the Exchange Management Console

Filters can be created for a number of different user attributes, such as department, the current server they are on, or by name.

Choosing filter criteria
Choosing filter criteria

For example, if you are batching mailbox migrations by surname you can create a filter to only show mailbox users whose surname starts with a given letter.

Applying filters in Exchange Management Console
Applying filters in Exchange Management Console

Click on Apply Filter to see the resulting view.

A filtered view of mailboxes in the Exchange Management Console
A filtered view of mailboxes in the Exchange Management Console

Filtering the views in this way can make it very easy to select the mailboxes that you wish to create move requests for.

CREATING MAILBOX MOVE REQUESTS WITH THE EXCHANGE MANAGEMENT SHELL

In a similar way to the Exchange Management Console the Exchange Management Shell allows filtering of mailboxes in the organization by various criteria.

For example to get the same filtered list of mailbox users with surnames starting with the letter A the following command is used:

[PS] C:\>Get-Recipient | Where {$_.LastName -like "A*"}

Name                                                        RecipientType
----                                                        -------------
Amanda.Agrawal                                              UserMailbox
David.Abbott                                                UserMailbox
Debbie.Abdillahi                                            UserMailbox
Debbie.Amissah                                              UserMailbox
Debbie.Ashong                                               UserMailbox
Debbie.Askew                                                UserMailbox
Denise.Ahadi                                                UserMailbox
Donna.A'Bear                                                UserMailbox
Ella.Amaral                                                 UserMailbox
Janis.Armoogum                                              UserMailbox
Jo.Allingham                                                UserMailbox
Kathy.Abdullahi                                             UserMailbox
Lesley.Ahmad                                                UserMailbox
Sue.Andress                                                 UserMailbox
Valerie.Andrews                                             UserMailbox

This output can then be piped into the New-MoveRequest command to create the move requests.

Get-Recipient | Where {$_.LastName -like "A*"} | New-MoveRequest -TargetDatabase MB-HO-01

In the above example the mailbox users whose surnames starting with the letter A have new move requests created to migrate them to the database MB-HO-01.

If the same command was used but without the –TargetDatabase parameter, the mailboxes being moved would be automatically distributed across the available databases within the same Active Directory site as the server that the command is being executed from. The exception to this is any mailbox databases that have been excluded from automatic mailbox provisioning.

As another example, this command when run on ESP-HO-EX2010B will create move requests for all mailbox users on the legacy server ESP-HO-EX2003 and automatically distribute the mailboxes across the Exchange 2010 mailbox databases in the site where ESP-HO-EX2010B is located.

Get-Recipient | where {$_.ServerName -eq "esp-ho-ex2003"} | New-MoveRequest

Automatic distribution of mailboxes across available databases is only possible when using the Exchange Management Shell to initiate the move requests. Using the Exchange Management Console requires you to specify a target database for the mailboxes being moved.

The Exchange Management Shell can also be used to monitor the progress of move requests. For example this command will list all move requests that have a target database of MB-HO-01.

[PS] C:\>Get-MoveRequest | where {$_.targetdatabase -eq "MB-HO-01"} | Get-MoveRequestStatistics

DisplayName               Status                    TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------                    ----------------          ----------------         ---------------
Joanna Hughes             Queued                    204 MB (213,900,039 by...                          0
Joy Singh                 Queued                    201.6 MB (211,394,039 ...                          0
Laoise Curtis             Queued                    203.4 MB (213,259,972 ...                          0
Maggie Hengist            Queued                    201.5 MB (211,268,161 ...                          0
Lydia Haines              Queued                    202.9 MB (212,717,146 ...                          0
Michael Phillips          Queued                    204.5 MB (214,421,891 ...                          0
Nancy Scott               Queued                    200.7 MB (210,499,528 ...                          0
Ravi Edmonds              Queued                    201.6 MB (211,396,972 ...                          0
Pakwei Dean               Queued                    201.9 MB (211,688,603 ...                          0
Rowena Khan               Queued                    203.9 MB (213,824,471 ...                          0
Prathee Dar               Queued                    201.9 MB (211,671,241 ...                          0
Sharmila Hafri            Queued                    203.1 MB (213,003,913 ...                          0
Stuart Beauchamp          Queued                    206.8 MB (216,879,621 ...                          0
Wendy Fyson               Queued                    202.3 MB (212,077,416 ...                          0
Tina Miller               Queued                    203.2 MB (213,039,339 ...                          0
Jas Dowden                InProgress                201.2 MB (210,950,587 ...                          79
Jagir Ward                InProgress                201.1 MB (210,838,575 ...                          79
Aisha Bhari               Completed                 0 B (0 bytes)                                      100
Andrew O'Grady            Completed                 204.2 MB (214,083,224 ...                          100
Denise Dartnell           Completed                 204.8 MB (214,717,706 ...                          100
Garth Gibbons             Completed                 203.4 MB (213,254,283 ...                          100
Harinder Rahman           Completed                 203.8 MB (213,746,554 ...                          100