Friday, May 24, 2013

Exchange 2010 - migration from 2007 - moving mailboxes

Moving mailboxes from one server to another is a crucial part of an Exchange 2007 - Exchange 2010 migration.


Exchange 2010 offers "online" migration which allows the user to work in their mailbox while the migration is taking place. However, this only works going from an Exchange 2007 to Exchange 2010 server (not for a possible rollback in the other direction) and the migration must be initiated in the EMC (or EMS) on the Exchange 2010 side.


The process includes 3 main steps:
1. Create a mailbox database on the Exchange 2010 server.
2. Mount the database.
3. Move the mailboxes.
Once all mailboxes have been migrated, we can also remove the Exchange 2007 mailbox database itself.

1.Create a mailbox database on the Exchange 2010 server

Yes, we could use (or rename and modify) the default mailbox database created at the installation of Exchange 2010 but I will opt to create a new database with the desired database and log file paths as well as a more user friendly name. We can create the database using either the EMC or the EMS (command line). I will use the EMS.

This is the command for creating a new mailbox database:

New-MailboxDatabase -Name "MBDB1" -Server EX10C -EdbFilePath C:\EXDB1\MBDB1.edb -LogFolderPath C:\EXLOGS1
Note: the folders for the database file and the logs files should be created beforehand, either in Window Explorer (not Internet Explorer!) or with the appropriate PowerShell cmdlet, for example:

C:\>New-Item -type Directory -name EXDB1

2. Mount the database.

We then must mount the database:

Mount-Database MBDB1

And there we go!

Note that the "RPCClientAccess" parameter designates the CAS Array created in an earlier post (Wednesday, May 1, 2013).
Get-Mailboxdatabase mbdb1 | fl *rpc*

RpcClientAccessServer : casarray-s1.mynet.lan

3. Move mailboxes to the new Exchange 2010 mailbox database (MBDB1)

We can move all mailboxes in a database with the New-MoveRequest cmdlet:

Get-Mailbox -Database OLD-MBXDB1 | New-MoveRequest -TargetDatabase MBDB1

We can move individual users as follows:

New-MoveRequest aisha.bhari@mynet.lan -TargetDatabase MBDB1

New-MoveRequest -TargetDatabase MBDB1

Another option:

'mynet.lan/Users/Alex.Heyne' | New-MoveRequest -TargetDatabase MBDB1

We can also designate a particular source mailbox

Get-Mailbox | where { $_.Servername -eq "EX1" } | New-MoveRequest -TargetDatabase MBDB1

This would move all mailboxes (still) on the Exchange 2007 server (EX1).

We can even observe the progression of the mailbox move with the Get-MoveRequest cmdlet:


DisplayName    Status                  TargetDatabase
-----------               ------                     --------------
Alan Reid       InProgress                   MBDB1
Alex Heyne    CompletionInProgress MBDB1
Aisha Bhari    Completed                   MBDB1

Once the mailboxes have been migrated, we can remove the mailbox database on the Exchange 2007 server. But how can we be sure that all the mailboxes have been migrated? With the Get-Mailbox cmdlet.

Note: EX10C is the Exchange 2010 server (EX1 is the Exchange 2007 server).

Get-Mailbox | ft servername,name -auto

 ServerName       Name
----------               ----
ex10c      Alex.Heyne
ex10c      Aisha.Bhari
ex10c      Alan.Reid
ex10c      Alannah.Shaw
ex10c      Conference Room X
ex10c      John.Smith
ex10c      Conference Room A

But first, let's verify the name of the mailbox database to remove.:

Name       Server       StorageGroup       Recovery
----             ------            ------------               --------
MBXDB1   ex1                SG1                   False


Then we can remove the mailbox database with the Remove-MailboxDatabase cmdlet:

Remove-MailboxDatabase MBXDB1


Are you sure you want to perform this action?

Removing Mailbox Database "ex1.mynet.lan\MBXDB1".

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y

WARNING: The specified database has been removed. You must remove the database file located in C:\SG1DB1\MBXDB1.edb from your computer manually if it exists. Specified database: MBXDB1

This would mark the end of the mailbox migration process.



  1. With Exchange Migration it is possible to simply migrate coming from a foreign messaging technique or older exchange versions to newer one.

  2. Helpful article, thanks for sharing this procedures to to migrate mailbox from Exchange server 2007 to exchange 2010. I also test this automate LepideMigrator for Exchange tool from . It is specially designed for administrators who wants to core exist their Exchange server for a while and do the migration batch wise and easily perform switch from an old Exchange to the new Exchange Server 2007 or Office 365 and allows to cross- forest and Intra forest migration.