WinDeveloper O365 Mailer FREE for 1 Year

WinDeveloper IMF Tune
WinDeveloper IMF Tune

Exchange 2010 Online Mailbox Move, a Deep Dive

Amit Tank [MVP – Exchange Server]

Amit Tank [MVP – Exchange Server] Photo

Amit Tank is an MVP in Exchange Server and Microsoft Certified Professional in MCITP, MCTS, MCSA and MCP. He has more than 6 years of experience in IT industry.

Cast your Vote
Poor Excellent

Mailboxes are inaccessible when moved across servers, causing major pain in any Exchange transition or migration project. One step ahead, Exchange 2010 delivers a new feature to move mailboxes while keeping them online to end users.

Move Requests in EMS

Let's take a deep dive on what a move request does internally when executing cmdlets in EMS.

Scenario: I have a single Exchange Server with FQDN and two databases Ess-Exch-DB1 and ESS-Exch-DB2. I am trying to move Amit Tank's mailbox from Ess-Exch-DB1 to Ess-Exch-DB2 using the New-MoveRequest cmdlet. Here I also include the -Verbose parameter to see what's happening internally.

Just like all other Exchange cmdlets, the following is first performed on running New-MoveRequest:

  • Verifies proper RBAC permission to run cmdlet

  • Update the auditing data as per settings configured for 'Admin Audit Agent Log'

Next New-MoveRequest starts working on the actual move request:

  • Verify the number of move requests currently running, to make sure MRS throttling is being followed in the same AD site where the mailbox database is available

  • Connect to one of the MRS instances within the AD site where the destination mailbox database is available

Move Request Verbose

  • Load source and target mailbox information including the Archive mailbox if enabled.

Move Request Verbose

Now it starts updating the move job information,

  • Updates the move job information at the System Mailbox (GUID 01613a2a-...) of the target database 'Ess-Exch-DB2' with a special message to move Amit Tank's mailbox (GUID 4bceb069-...) and update the status to 'Queued'.

  • Also update the same information and status in Active Directory.

So the move request information will be available from two repositories, at the target database System Mailbox and within Active Directory.

Move Request Verbose

These are the AD attributes being updated during the move process.

Active Directory Properties

Now we look at the background work performed by MRS. We can see the whole operation by increasing the diagnostic logging for "MSExchange Mailbox Replication\Mailbox Move" process to Highest. A series of event logs will be logged at the Application event log.

An asynchronous mailbox move will generate events with the IDs:

  • Event ID 1102 - Started processing mailbox moves.
  • Event ID 1104 - Started initial seeding stage.
  • Event ID 1105 - Completed initial seeding stage.
  • Event ID 1109 - Completed incremental synchronization cycle.
  • Event ID 1106 - Initiating final (offline) synchronization stage.
  • Event ID 1107 - Completed a mailbox move.

Note: By default Diagnostic Logging of "MSExchange Mailbox Replication\Mailbox Move" is set to lowest and in that case you can see 1102 & 1107 events only.

Below, we can see the event logs generated for our sample mailbox move.

Events Log Entries

  • When MRS searches for new move requests, it picks up the queued job and starts the mailbox move process. (Event ID: 1102)

  • MRS connects to the mailbox directly with and starts performing the initial seeding of the mailbox to the target database without interrupting user mailbox access. (Event ID: 1104)

  • Update the status in AD and System Mailbox to 'InProgress'

We can see the status with Get-MoveRequest.

In-Progress Status

After completing the initial seeding (Event ID: 1105), MRS starts an incremental synchronization cycle (Event ID: 1109) that moves all transactions to the target mailbox. In this manner actions performed against the source mailbox following the initial seeding are replicated at the target.

  • The mailbox will be locked for a short period of time upon completion of incremental synchronization (Event ID: 1106). Thus the user needs to log off and log back on the outlook client with new mailbox location.

  • Status will be updated with 'Completed' in AD and System Mailbox.

Now the Administrator needs to clear the move request with the Remove-MoveRequest cmdlet which will clear the information from AD and System Mailbox.

Remove Move Request

New in Exchange 2010 Move Requests

Apart for the ability to perform moves online, here are more improvements that Exchange 2010 delivers:

  • Move history and report information is saved into the mailbox so we can get details with the help of IncludeMoveHistory and IncludeMoveReport parameters of Get-MailboxStatistics cmdlet.

  • Dumpster (Deleted Items retained as per retention settings) is moved along with the mailbox when moving between Exchange 2010 databases.

  • Content Indexing start scanning mailboxes along with mailbox moves so fast search is available upon move mailbox completion.

Move History


In earlier Exchange versions, administrators had to move mailboxes during a scheduled outage window, perhaps during night time. However this was problematic when a firm is operational 24x7 and end users cannot tolerate mailbox unavailability. The new Exchange 2010 'Online Mailbox Moves' feature relieves administrators, allowing mailbox moves with near zero downtime.


Understanding Move Requests

Managing Move Requests

Move Requests Cmdlets

User Comments - Page 1 of 1

lk 8 Jul 2014 07:25
Harisha 21 Mar 2011 18:35
If I have Exchange 2007 SP2 in Site A and Exchange 2007 SP2 in Site B.

I'll introduce Exchange 2010 CAS in both the sites, will I be able to achieve on-line mailbox move?
Flaviano 10 Nov 2010 01:29
Thank you for the answer, Alexander.

I solved it. I had to enable inheritance for some values in AD, through ADSIEdit (thanks to Best Practices Analyzer!!!). I know I can't move mailboxes online, but after this fix now I'm able to make "local move requests".
Is it a real "mailbox moving" or did I not understand somethings???
Thank you very much.

Alexander Zammit 9 Nov 2010 09:43
As this article explains you cannot make an online mailbox move from Ex03 to Ex10.

Also check this:
Flaviano 9 Nov 2010 09:03
I must move mailboxes from exchange 2003 to new 2010 (they are in the same forest). When I try to move online, I receive an error: Exchange can'y find the db (same error if I try to see mailbox properties).
Any idea?
Thank you.
Andrew Wharton 20 Aug 2010 17:52
Did you find out what this was Luis Garcia ?

I am experiencing it also.


Please mail me
Amit Tank 19 Aug 2010 13:10
Ram: In Exchange 2010, we don’t have storage groups anymore. But yes you need to create the mailbox database as per you need and move the mailboxes.

Me: Yes, all local move request from supported version of Exchange (2007 SP2 or 2010) to Exchange 2010 is online mailbox move. Moving method is same but if your source server Exchange version doesn’t support online mailbox move then user can’t able to access the mailbox.

I have a 300 GB Data store on both servers: Exchange database size won’t be decreased until you do offline defragment. The amount of data you moved of that space will be just marked as a white space. This is since Exchange 2000 – Reference:

Malc: It is Eseuitl /D switch do to defragment. We don’t have any switch like /compress. Eseutil /D:

Chetan: You need to increase the recoverable items quota for the target mailbox database by using the Set-MailboxDatabase cmdlet with the RecoverableItemsQuota parameter.

Luis Garcia: I would start checking update rollups on Exchange server, if latest one is not installed, install it and check. Also you would ask your query in some of the Exchange forum where you would get responses from various experts.
Luis Garcia 13 Aug 2010 06:34
Has anyone seen doing moves from Ex 2003 to 2010 where randomly the information store in 2010 hangs? For example the Mail gets stuck in the outbook but clients remain connected? In my scenario It can be with one or more, sometimes when it gets to 20% or even 60%. Once I restart the IS and restart the process works sometimes?.
Pcarp 11 Aug 2010 15:14
@Chetan, Go to the properties dialog for the mailbox database that you are moving the mailbox to and look at the "Limits" tab. Either remove the limit restrictions, or increase the limits so that they accomodate the large boxes you are moving. Ex2010 won't allow you to move a mailbox to a database if that mailbox exceeds the quotas for that database.
chetan 10 Aug 2010 01:56
Hi Amit, I am getting following error while moving mailbox from exchange 2k3 to ex2010.
"Mailbox size 2.535 GB (2,721,819,630 bytes) exceeds target quota 2.3 GB (2,469,396,480 bytes)."
Is there any way that i can ignore mailboxsize error while moving the users. & i can't find option to schedule multiple user move request.
Malc 2 Jul 2010 00:35
The answer to the database size is that you have to take the database off line and run eseutil with the /compress switch. exchange databases are like having an extention to your house for your kids. once your kids leave home the house is still the same size, you can utilise the space if you add more mailboxes but it never shrinks. runing eseutil and compressing the database shrinks the database back down. you need at least as much space on your hard disk as the database.
i have a 300 GB Data store on both servers. 27 May 2010 12:41
i have a 2 server exchange environment (not running DAG). I brought the second one online 6 months after my primary. I moved 90% of my users but my mail store is not shrinking. It stayed the same size even though i have moved all my users off of it.. Can anybody explain this?
Me 25 May 2010 09:28
Soooo, all Local Move Requests are Online Move Requests? They aren't two different types of requests?
Ram 8 Mar 2010 08:13
Thanks for sharing. I'm planning to move my mailboxes from my Exchange 2k7 SP2 to my new Exchange 2010 that I've just set up. Do I need to create new storage groups and databases on my new server that match those I have on the 2k7 SP2 box before doing the move? I'm not clear about that part so I'll really appreciate your feedback. Thanks in advance.
Sathish Kumar Elango 9 Feb 2010 22:11
Excellent Job Amit :)
Regards, Sathish.
Erikf 12 Nov 2009 07:14
Have anyone trid this with users running Entourage or Macmail? How will they know when the move is complete?
Amit Tank 7 Nov 2009 03:48

You can clear all completed move requests with below cmdlet.

Get-MoveRequest | Where{$_.Status -eq "Completed"} | Remove-MoveRequest -Confirm:$False


'Get-MoveRequest' gets all move request regardless of status.

'Where{$_.Status -eq "Completed"}' filters the result of Get-MoveRequest and get the completed requests only.

'Remove-MoveRequest -Confirm:$False' remove all the move requests filtered with Completed status without asking for the confirmation.

Hope this helps!
NWO 7 Nov 2009 02:05
How can I "Clear Move Request" for all of them in one single command?
Elvis 23 Sep 2009 00:56
Cool! thank you for sharing!
Copyright © 2005 - 2024 All rights reserved. is not affiliated with Microsoft Corporation