In Exchange Server 2013 mailbox moves are performed using move requests.

There are a variety of ways that move requests can be used to move mailboxes in an Exchange 2013 organization, with such options as:

  • Moving individual mailboxes or batches of mailboxes
  • Moving primary mailboxes with archive mailboxes or moving them seperately
  • Completing moves immediately or suspending them for later completion
  • How many bad (corrupt) mailbox items are able to be discarded before the migration fails
  • Moving to a specific database or allowing Exchange to automatically choose a database

The Exchange 2013 servers will also apply their own intelligence to mailbox moves, slowing down or even halting a move if the server health is at risk (for example high CPU utilization).

Let’s take a look at some examples of mailbox moves using move requests in Exchange 2013.

Using the Exchange Admin Center to Move Mailboxes

For a single mailbox move you can begin the process from the mailboxes view. In the Exchange Admin Center navigate to Recipients -> Mailboxes and choose a mailbox that you wish to move. At the bottom of the right-hand side click the link to move mailbox to another database.


Alternatively, select the Migration view and start a new “Move to a different database”.


Select one or more mailboxes to be moved and click Next.


Give the migration batch a name, and choose the target database to move to. If no database is selected Exchange 2013 will automatically choose a target database for the move. Notice also that you can choose whether to move only the primary mailbox, archive mailbox, or both together. Click Next to continue.


Select a user to receive the email report for the move.


Choose whether to start the batch immediately or manually start it later. This option allows you to prepare your migration batches ahead of time and then manually start them when you are ready.


Finally, choose whether the move should automatically complete or should suspend when ready to complete, which requires you to manually complete it. When mailbox moves are processing the user can continue to access their mailbox right up to the point where the completion occurs, when they are disconnected briefly, so this option lets you control the timing of the completion to occur when it will be least disruptive to the end user.


Click New to begin the move request.

You can observe the progress of the migration batch in the Migration view in EAC.


When the migration is complete there may be a delay of several minutes due to Active Director replication between sites before the end user can reconnect to their mailbox, depending on where they are located relative to the Exchange servers.

Using Exchange Management Shell to Move Mailboxes

Here is an example of using PowerShell to manage mailbox move requests. In this case the mailboxes hosted on database MB-BR-01 are moved as a batch named “Branch Office Batch 1”. No target database is set so that Exchange 2013 can automatically distribute them between available databases. Also, SuspendWhenReadyToComplete is used to prevent automatic completion, so that it can be initiated at a later time outside of business hours.

[PS] C:\>Get-Mailbox -Database MB-BR-01 | New-MoveRequest -BatchName "Branch Office Batch 1" -SuspendWhenReadyToComplete

DisplayName               StatusDetail              TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------------              ----------------          ----------------         ---------------
Wendy Fyson               Queued                    54.07 MB (56,698,964 b...                          0
John Williams             Queued                    52.35 MB (54,889,436 b...                          0
Alex Heyne                Queued                    90.71 MB (95,115,943 b... 955.9 KB (978,796 bytes) 0
Katherine Phipps          Queued                    54.63 MB (57,281,147 b...                          0
Judith Rodrigues          Queued                    57.11 MB (59,880,427 b...                          0
Olive Weeks               Queued                    53.52 MB (56,123,602 b...                          0
Sonia Smith               Queued                    54.26 MB (56,894,534 b...                          0
Sunset Room               Queued                    36.35 MB (38,113,922 b...                          0
TestMB BR                 Queued                    59.37 MB (62,256,579 b...                          0
Joanne Rigby              Queued                    84.95 MB (89,079,670 b...                          0

You can view the distribution of mailboxes across target databases using Get-MoveRequest.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1"

DisplayName                                    Status                    TargetDatabase
-----------                                    ------                    --------------
Wendy Fyson                                    InProgress                DB01
John Williams                                  InProgress                DB02
Alex Heyne                                     InProgress                DB02
Katherine Phipps                               InProgress                DB02
Judith Rodrigues                               InProgress                DB02
Olive Weeks                                    InProgress                DB02
Sonia Smith                                    Queued                    DB02
Sunset Room                                    Queued                    DB01
TestMB BR                                      Queued                    DB02
Joanne Rigby                                   Queued                    DB02

Progress can be monitored using the Get-MoveRequestStatistics cmdlet.

[PS] C:\>Get-MoveRequest -BatchName "Branch Office Batch 1" | Get-MoveRequestStatistics

DisplayName               StatusDetail              TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------------              ----------------          ----------------         ---------------
Wendy Fyson               CopyingMessages           54.07 MB (56,698,964 b...                          29
John Williams             CopyingMessages           52.35 MB (54,889,436 b...                          29
Alex Heyne                CopyingMessages           90.71 MB (95,115,943 b... 955.9 KB (978,796 bytes) 25
Katherine Phipps          CopyingMessages           54.63 MB (57,281,147 b...                          25
Judith Rodrigues          LoadingMessages           57.11 MB (59,880,427 b...                          20
Olive Weeks               LoadingMessages           53.52 MB (56,123,602 b...                          20
Sonia Smith               Queued                    54.26 MB (56,894,534 b...                          0
Sunset Room               Queued                    36.35 MB (38,113,922 b...                          0
TestMB BR                 Queued                    59.37 MB (62,256,579 b...                          0
Joanne Rigby              Queued                    84.95 MB (89,079,670 b...                          0

When the move requests reach 95% completed they will display a status of AutoSuspended. The end user can continue to use their mailbox at this time, and you can complete the moves at the desired time.

First remove the autosuspend flag from the move requests, so that they will resume all the way to completion.

[PS] C:>Get-MoveRequest -BatchName "Branch Office Batch 1" | Set-MoveRequest -SuspendWhenReadyToComplete:$false

Next, issue a Resume-MoveRequest command.

[PS] C:>Get-MoveRequest -BatchName "Branch Office Batch 1" | Resume-MoveRequest

Monitor the move requests until completion.

[PS] C:>Get-MoveRequest -BatchName "Branch Office Batch 1" | Get-MoveRequestStatistics

DisplayName               StatusDetail              TotalMailboxSize          TotalArchiveSize         PercentComplete
-----------               ------------              ----------------          ----------------         ---------------
Wendy Fyson               Completed                 54.07 MB (56,698,964 b...                          100
John Williams             Completed                 52.35 MB (54,889,436 b...                          100
Alex Heyne                Completed                 90.71 MB (95,114,080 b... 957.7 KB (980,659 bytes) 100
Katherine Phipps          Completed                 54.63 MB (57,281,147 b...                          100
Judith Rodrigues          Completed                 57.11 MB (59,880,427 b...                          100
Olive Weeks               Completed                 53.52 MB (56,123,602 b...                          100
Sonia Smith               Completed                 54.26 MB (56,894,534 b...                          100
Sunset Room               Completed                 36.35 MB (38,113,922 b...                          100
TestMB BR                 Completed                 59.37 MB (62,256,579 b...                          100
Joanne Rigby              Completed                 84.95 MB (89,079,670 b...                          100

Moving Mailboxes using Migration Batches

In the previous example we looked at using move requests to move multiple mailboxes. The move requests were added to a “batch” for ease of management. This is basically the same approach that could be used in Exchange 2010 to manage move requests.

Exchange 2013 has a new approach to migration batches with a whole new set of PowerShell cmdlets to create and manage them. I prefer PowerShell, but if you’d rather use the EAC you’ll notice that the first example in this article demonstrates how to create a migration batch. All you would need to do is manually add multiple users or import a CSV file. Let’s take a look at those CSV file requirements, which apply for either the PowerShell or EAC method.

To use Exchange 2013 migration batches we first need to create a CSV file containing the details of the mailboxes to move. The only required attribute to be included in the CSV file is the email address of the mailbox.

[PS] C:adminmigration>Get-Mailbox -Database MB-HO-01 | Select PrimarySMTPAddress | Export-CSV -NoTypeInformation headofficebatch1.csv

Open the CSV file and change the header to “EmailAddress”.


Next, create the migration batch with New-MigrationBatch.

[PS] C:adminmigration>New-MigrationBatch -Name "Head Office Batch 1" -CSVData ([System.IO.File]::ReadAllBytes("c:adminmigrationheadofficebatch1.csv")) -Local

Identity                        Status                    Type                           TotalCount
--------                        ------                    ----                           ----------
Head Office Batch 1             Created                   ExchangeLocalMove              141

I didn’t set a notification email for the migration batch, but it has used the email address of the account that I was logged in with to submit the move request.

[PS] C:adminmigration>Get-MigrationBatch "Head Office Batch 1" | fl submittedbyuser,ownerid,notificationemails

SubmittedByUser    :
OwnerId            :
NotificationEmails : {}

We could add more email addresses for notification if we need to.

[PS] C:adminmigration>Get-MigrationBatch "Head Office Batch 1" | Set-MigrationBatch -NotificationEmails,

[PS] C:adminmigration>Get-MigrationBatch "Head Office Batch 1" | fl submittedbyuser,ownerid,notificationemails

SubmittedByUser    :
OwnerId            :
NotificationEmails : {,}

At this stage the migration batch hasn’t started. To start it use the Start-MigrationBatch cmdlet. Alternatively, use the -AutoStart parameter when creating the migration batch.

[PS] C:adminmigration>Start-MigrationBatch "Head Office Batch 1"

To see the progress of the migration batch run Get-MigrationUser and Get-MigrationUserStatistics.

You can do this for a single user, such as Aisha Bhari that was moved in an earlier example in this article.

[PS] C:adminmigration>Get-MigrationUser

Identity                                 Batch                          Status                    LastSyncTime
--------                                 -----                          ------                    ------------        Move Aisha Bari                Completed                 8/07/2014 10:27:05 PM

[PS] C:adminmigration>Get-MigrationUser | Get-MigrationUserStatistics

Identity                                 Batch                          Status                    Items Synced     Item
                                                                                                                   s Sk
--------                                 -----                          ------                    ------------     ----        Move Aisha Bari                Completed                 7090             0

Or do it for all users being migrated.

[PS] C:adminmigration>Get-MigrationUser | Get-MigrationUserStatistics

Identity                                 Batch                          Status                    Items Synced     Item
                                                                                                                   s Sk
--------                                 -----                          ------                    ------------     ----        Move Aisha Bari                Completed                 7090             0         Head Office Batch 1            Queued                    0                0
DiscoverySearchMailbox{D919BA05-46A6-... Head Office Batch 1            Queued                    0                0
extest_0bcca07661e94@exchangeserverpr... Head Office Batch 1            Queued                    0                0     Head Office Batch 1            Syncing                   0                0       Head Office Batch 1            Syncing                   0                0      Head Office Batch 1            Syncing                   0                0      Head Office Batch 1            Syncing                   0                0       Head Office Batch 1            Syncing                   0                0        Head Office Batch 1            Syncing                   0                0

When you’re ready to complete the migration batch, which will cause short outages for each user, use Complete-MigrationBatch. Alternatively, use the -AutoComplete switch when creating the migration batch and it will automatically occur, which may disrupt your end users at an undesirable time.

[PS] C:adminmigration>Complete-MigrationBatch "Head Office Batch 1"


As you can see there are multiple ways to manage mailbox moves in Exchange Server 2013. Move requests will already be familiar to those who have run mailbox migrations on Exchange 2010 before, whereas the new Exchange 2013 migration batches offer some improved features such as notification emails.

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for


  1. Nikolay

    Hi, I have two servers Exchange 2013 in DAG with database copy, I setup two new Exchange server 2016 in DAG with database copy and I want to migrate all users mailboxes from old 2013 Servers to new 2016 Server. I tried to migrate one of them – there was no error but all day says: syncing and nothing happens. Can I migrate mailboxes between DAG with database copy or I have to remove database copy and then migrate?

  2. Jordi Alexander

    Hi Paul,

    I have a question..
    If the migration batch is still on process, the users still can access their mailbox or no ?


  3. Ranga

    Hi Paul,

    thanks for the article and it very informative. I had started a migration batch and ran into space issue, now i had stopped the move request but still the space didn’t get retained. can you guide me how to reclaim that space which is used to copy the items from one DB to other DB.

    Thanks in advance.

  4. Elizabeth

    Hi Paul,

    Do you recommend enabling circular logging on the target databases when migrating?
    Moving form 2007 to 2013 to a DAG environment? And if you do so, the circular logging only gets enable on the active databases? Thanks t

  5. Stephan

    Hi Paul,

    I have got a question for you regarding mailbox sizes. I am about to migrate mailboxes from a Exchange 2010 environment to Exchange 2016. The prohibit send limit is set to 10 gb for all databases. However we have a select number of users were we have set the prohibit send quota to 15 gb.

    Im struggling to find whether the custom quotas will be transferred during the migration or will I have to take other measures?

    1. Avatar photo
      Paul Cunningham

      The custom quotas will be preserved in the move. If you’re ever unsure about this type of thing then the best thing to do is to create a test case and run through the scenario to see the outcome.

  6. david hood

    If I am batching up say 100 users in a move from 2007 to 2013, and the 2013 environment has multiple servers with MRS available – is there a way to specify which server actually “does the move”? Or is it just picked at random?

  7. Jeff B.

    I am migrating from ex07 to ex13 and I have successfully migrated about 10 mailboxes. But, the last one I tried to move is stuck in the ‘Queued’ state. When I run ‘Get-MailboxDatabaseCopyStatus’ I get ContentIndexState=’FailedAndSuspended’ and ErrorMessage = ‘Reseeding of the index is required’. I went ahead and stopped the two search services and deleted the folder, but I don’t think it is rebuilding the index.

    Any ideas on what to do next?

  8. Rob

    Hi Paul
    I’m about to start some Mailbox Moves to reclaim WhiteSpace.
    Is it possible to create migration batches for sub sets of lists of users?
    Say for example I have 100 Mailboxes on 1 DB, and I want to move them off in batches of 10?

  9. Peter Henry

    I have a rather strange question. I’m in the process of migrating to Exchange 2013 from 2007. I wanted to move my mailbox first yet when I went to move it in the EAC, I forgot to specify the destination database. I let it go on for a little while thinking it would fail on its own but it didn’t so I stopped the batch. I then tried to do a different batch moving my mailbox but that completed without doing anything. I’m now thinking that I need to go in and delete the original batch before I can move my mailbox successfully but am a little wary about doing that. Do I simply have to delete the stopped batch and then create another one or will deleting it cause problems for my mailbox?


    1. Avatar photo
      Paul Cunningham

      Yes, you have to remove the first batch/move request before you can create another one. No it won’t cause a problem for your mailbox.

  10. Mark

    Anyone moving mailboxes during business hours? Just curious?

    1. Hector

      Yeah! Most users I migrated, was during business hours. Clients just had to restart the Outlook client when the migration finished.

  11. Syed Nazar

    Hi Paul,

    I am moving the old database to a New one but as a finial result it shows me Completed with Errors.

    the Error : Waiting for mailbox changes to replicate.

    Can you please advise for the issue please

  12. Allan

    Hi Paul,
    I’ve just installed an Exchange 2016 server in a mixed environment with an Exchange 2013. When I have moved all mailboxes etc. from my current Exchange 2013 to Exchange 2016, then how do I prevent Outlook clients from connecting to the old Exchange?

  13. Luke

    Any idea how to “push” out a new server URL to mobile devices? when I migrated from EX07 to EX13 it automatically updated the URL on all devices when the mailboxes were moved however when I migrated the mailboxes from EX13 to EX16 it did not update the URL. I also don’t see any such setting for mobile device policy’s.
    (for the interim I set the (A) record of the EX13 server on our public and private DNS to the EX16 server’s IP but that’s not a permanent solution in my opinion.

    1. Avatar photo
      Paul Cunningham

      Why are you changing namespaces during the migration, instead of just moving the existing namespace?

      1. Luke

        It was a poorly planned co-existence / “hybrid” migration from on-site EX07 to off-site EX13 immediately followed by off-site EX13 to on-site EX16 once the 07 server had been reloaded. Mainly a new namespace was used to provide additional detail during troubleshooting other DNS issues inherited on the network as this was all spread out over nearly a month while the users with office 07 were updated to 13. The steps were go from:
        ex07@ mail.
        ex13@ stage.
        ex16@ mail.

        the server address on mobile devices automatically updated to stage. when users were migrated from 07 to 13 but did not change back to mail. as those same users were moved from 13 to 16 (however desktops did successfully update).

        1. Luke

          we ended up redirecting the second URL both internally and externally to the new server until we were able to manually update each device after decommissioning the exchange 2013 server. Hopefully future migrations are a single step within the same namespace!

  14. ikram

    One of my Client want to achieve active – active solution between branches, for example a user in H.O Exchange want to login with same credential in Branch office. What is the desirable procedure to achieve this solution.

    1. Avatar photo
      Paul Cunningham

      If both locations are part of the same Active Directory then they can already do that.

  15. Gerardt

    I am experiencing some strange behavior when attempting to move Ex2013 mailboxes to an Ex2016 database. After creating the batch the move goes to a syncing state then after a short period the batch completes showing 0 mailboxes moved with all of the mailboxes remaining in the Ex2013 database. I even attempted moving a single mailbox and am met with the same result. However, be advised I was able to move the Arbitration mailboxes (5 in total) to an Ex2016 database successfully with no errors. What is going on?

    1. Avatar photo
      Paul Cunningham

      You might be seeing the mailboxes silently dropping out of the batch. Look at the individual move requests instead, that should give you the reason why an individual move failed. Most common issue is an existing move request for that mailbox that hasn’t been cleared.

  16. Marco

    Hey, we are going to migrate some users from our customers site to our site (IT Outsourcing). As there is only a 100 Mbit Link between the two site we were wondering, whether it makes more sense to complete the migration batch manually or automatically.
    There are some mailboxes that are 40-70 Gigabytes.
    Does anyone know if we complete the mailbox migration manually (let’s say on monday monring) how long the user’s will be disconnected from their mailbox? Will the be disconnected for the whole completion process? Thank you a lot


    1. Avatar photo
      Paul Cunningham

      The user is disconnected during the completion process, which is typically the last 5% of the mailbox data.

      Manually completing the request gives you more control over the specific timing, which sounds like what you want.

      1. Marco

        Thanks for your fast answer 🙂

        One additional question: Are the 5 % the Delta , meaning the data arrived between the start of the migration, or are the 5% fixed? That would mean that in case of the 70 GB Mailbox, there have to be 7 GB transferred and during that time the mailbox wont be accessible. Thanks a lot in advance. Marco

        1. Avatar photo
          Paul Cunningham

          The move request will get to 95% then stop and wait for completion. How it works out which 5% to leave to last, I don’t know. Safe to assume that anything that arrives while the move request is in a suspended state will add to that 5%. And yes, the bigger the mailbox the longer the completion task will take.

          1. Marco

            Thank you Paul. You helped me a lot 😉

            Have a nice day


  17. Oscar Garcia

    what happend with incoming emails when a mailbox is in migration progress and it status is copyingMessages

    1. Avatar photo
      Paul Cunningham

      They will continue being delivered, and they will be synchronized as part of the migration process. The only interruption is during the final cutover of the mailbox to the new database. Messages in transit at that time will simply queue for a few moments while the final cutover completes.

      Mailbox moves do not cause missed or significantly delayed messages for the user.

  18. Sharique

    Hi Paul,

    I tried to move few users in a batch from an existing database to a new database in exchange 2013, it says completed successfully without any mailbox move. Synced: None, Total Mailboxes: None.
    Same result if I try to move a single user.
    Also, tried to move user from existing database to another existing one. Same result.

    Any Idea?

  19. Jeff

    It’s like the 2010 doesn’t know where the migrated mailbox is.

    1. Jeff

      The latest error from the 2010 message queue:
      451 4.4.0 Primary target IP address responded with “421 4.4.1 Connection timed out.” Attempted failover to alternate host, but that did not succeed. Either there are no alternate hosts, or delivery failed to alternate hosts.

      And yes I can telnet to both machines by IP address and FQDN.

        1. Jeff

          I added a new receive connector on the 2013 with a single IP and it started working.
          The simple things in life…

          1. Avatar photo
            Paul Cunningham

            That isn’t a solution, that’s an indication that something is wrong with the receive connectors on the 2013 server. The default set of receive connectors are configured correctly for intra-org mail flow to work just fine.

  20. Jeff

    Doing a 2010 to 2013 migration. Everything seems to be in place.
    We are using a third party smart host for spam filtering that forwards via IP address to the new EX2013 server which in turn is forwarding to the EX2010 server. I moved a test mailbox to the EX2013 and can connect via OWA and successfully log in and send an email.

    The issue: When you send an email to the migrated mailbox it gets stuck in the EX2010 queue with the error 421 4.4.1

    I checked to make sure all connectors had Exchange Server Authentication enabled.
    From the EX2010 server I checked the SPN (setspn -L) and I see the EX2013 server.
    From the EX2010 server I checked the receive connector (get-receiveconnector | ft name,) on the EX2013 and can see the connections.

    Yet the old server will not send inbound email to the migrated mailbox.

    Thank you in advance

    1. Avatar photo
      Paul Cunningham

      What is the full error?

      Have you modified any of the default receive connector settings on either server?

      Have you created a send connector on the 2010 server that points to the 2013 server (you shouldn’t, but lots of people do, and it breaks mail flow)

      Can you telnet to each server from the other one on port 25?

      1. Jeff

        I did not modify the 2013 Default Rcv connector.
        I had to allow Exchange Server Authentication on the 2010 to allow flow to it from the 2013. After that I made sure it was enabled on both ends.
        After clearing the queue inbound mail to the migrated mailbox on 2013 is working from external sources.
        All external mail is being routed to the 2013 and is correctly being routed to mailboxes on the 2010 server.
        I can successfully send a test message from the 2013 account to a 2010 account.
        However the reply is stuck. Seems everything internal is not flowing from the 2010 to the 2013.

  21. Saeed Khalifi

    Hi Paul. Thank you for this great article.

    In this command
    Get-Mailbox -Database MB-BR-01 | New-MoveRequest -BatchName “Branch Office Batch 1” -SuspendWhenReadyToComplete

    How can i set the target database in the above command?
    Thanks in advance.

  22. Faic

    thanks Paul. Will try and see.

  23. Faic

    Hi Paul,

    This particular mailbox failed during migration so I want to fix this using the command above, but other mailboxes are still in progress.

    If I run fix on this problem/failed mailbox, will it affect the others in progress? Or I need to run when no mailbox migrations in progress?

    please confirm.


    1. Avatar photo
      Paul Cunningham

      You can remove that mailbox from the batch, and the rest of the batch will continue. That gives you the opportunity to do whatever you need to do on the failed mailbox, then you can create a new batch for that mailbox when it’s ready to try again.

  24. Faic

    Hi Paul,
    can I run the command: New-MailboxRepairRequest -Identity “ProblemMailbox” -CorruptionType ProvisionedFolder,SearchFolder,AggregateCounts,Folderview -Force

    on the single mailbox while mailbox migrations are currently in progress? I need to know before I issue this command.

    Please confirm.
    thanks, faic

    1. Avatar photo
      Paul Cunningham

      I wouldn’t do it. If you think you need to repair a mailbox, do it before or after you migrate it.

  25. Daniel

    Hi Paul,

    Currently in the throws of migration and have been doing plenty of late night reading to try and speed up my migration! We’ve got Exchange 2013 CU11, and Exchange 2007 all patched up. I’ve installed as coexistance, ActiveSync working perfectly, and some users working correctly in Outlook, however other users just sit there for 5 mins trying to connect to Exchange. Currently we’ve got users on a mixture of webmail and outlook and i’m desperately trying to migrate them onto the new server, however moving 1400Gb of mail is proving difficult! Is there any way to speed up the transfer between the servers – they just seem to sit idle for 95% of the batch…



    1. Avatar photo
      Paul Cunningham

      Migration speed is dependent on the performance of the source and the destination. If either are under heavy load, the migration will slow or stall completely.

      That said, I’ve heard of 2007 -> 2013 being particularly slow for some projects. I’d suggest you open a Microsoft support case as there might be some supported changes you can make under their guidance to config files to speed things up.

  26. naji

    after moving mailboxes from exchange 2010 to 2013, the size of mailboxes in 2010 remains, how I can clear them to see if there isany mailbox not moved?

  27. Ionut

    Hi Paul,

    I migrated some mailboxes to a newly created Database (DB05) in Exchange 2013.
    I am confused about one thing:
    In ECP the migrated mailboxes appear in the new database but if I run Get-MailboxDatabase “DBname” | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount from PowerShell migrated mailboxes still appear also on the old database (as well as in the new database).


    1. Avatar photo
      Paul Cunningham

      Just need to wait for background maintenance tasks to clean up after the moves. I’m not 100% sure but it may need to wait for the deleted mailbox retention period to pass.

  28. Suz

    Hi Paul,

    I migrated users from on premise to cloud. Even after thatthose users are coming in the list of “to be migrated users”. HO can I remove those users from that list?

  29. Rami Eido

    Dear Paul,

    After migrating most of the mailboxes from Exchange 2007 to Exchange 2013 successfully and distributed in several Databases ( i am using the standard version (5 Databases)).
    after that, i needed to move some of the mailboxes from one of these databases to another database (inside the Exchange 2013) when the moving starts it takes maximum 1 min and when i press on details i don’t find any email in it and it says finalized without making any change. in the migration feed the batch name is there but empty and the mailboxes remains in the old database..
    is there any thing i should do before moving these mailboxes ? because it’s not logic if i cant move any mailbox from a db to another..
    please advise.


    1. Rami Eido

      Dear Paul, i found the solution for this issue
      All i needed to do is to delete the old batches that contain the Mailbox i need to move and then create a new batch.. 🙂

  30. Andrew Keywood

    Hi Paul – have just the one Exchange 2013 CU8 Server Standard Edition and have 5 DB’s which are setup for different accepted domains, today migrated using ECP 10 mailboxes from one DB to another, when checking in PowerShell with Get-MailboxStatistics – Database notice the some of these mailboxes are now in both DB the original and new. Not sure how that’s happen, can you think of an explanation.

    1. Avatar photo
      Paul Cunningham

      Mailbox retention settings on the database. The old mailbox isn’t purged for X days after the move. Get-MailboxStatistics can return stats for those types of mailboxes.

  31. Debashis baidya

    My mailbox size is 8.35gb and when i move the mailbox to local termination database it was under queue a long time (2 hrs) after that it will not complete. in EXCHANGE 2013

    please give me suggestions

  32. Rakesh Razdan

    I am trying to migrate exchange 2013 from old server to a new infrastructure with windows 2012 and Exchange 2013. Currently the old server [old server1] is running smoothly.
    I need to migrate the EXchange 2013 in same AD from old server to new server.

    Tasks I have completed.
    1. Installed windows 2013 on new server
    2. add this new server as memberserver
    3. Prepared the exchange 2013 on new server
    4. Installed Exchange 2013 on new server
    5. Started the Move mailbox with “using the Exchange Admin Center”

    From here I do the complete the installation to decommission the old server.

    I would request your technical assistance on this ASAP.

  33. Josh L

    We’ve been operating an Exchange 2010 environment for a few years and have recently added two Exchange 2013 servers. We have 3 databases on the new servers (DAG groups, all active on one and passive on the other) with various storage quota sizes. I’m in the process of migrating mailboxes from 2010 to 2013 and some on them were put on the wrong 2013 database, so their storage quota is too low.
    When trying to migrate these users from one 2013 database to another, it finishes – status ‘Completed’ – but nothing moved. The columns (Total, Synced, Finalized, Failed) all have 0 in them.
    Can you help shed any light on why I can’t migrate mailboxes between databases on the same server?

    1. Avatar photo
      Paul Cunningham

      You’ll need to clear any existing move requests for those mailboxes (even completed ones) before you can move them again.

  34. Lonleysurvivor

    Hello Paul, thanks for this superbe documentation. Do you have any clue why durring the migration the whole batches are “stalling” and allmost nothing more happens…? what could we concider? rebooting a service? which log should we concider to come to a result? thanks in advance.

    > we copy arround 700 Mailboxes with (50 Batch and about Plus miuns 100-1G / per Mailbox)

    1. Ross

      any suggestions on where i should check to fix this? I added an internal SMTP connector on SERVER1 and pointed it to server2.

      1. Avatar photo
        Paul Cunningham

        There’s no special connectors required to be created by you for two Exchange servers in your organization to talk to each other.

        As long as they can reach each other on TCP port 25 they can send email back and forth to each other. There’s lots of possibilities as to what can interfere with that. Firewalls, WAN accelerators, antivirus/security products installed on the server that block port 25 (McAfee is a common culprit for that).

        1. Ross

          Thanks paul

          I worked it out, SERVER1 had the default gateway set as the second DNS server, once i removed this mail started flowing correctly

  35. Ross

    Hi Paul

    We had an exchange 2013 SP1 server with CAS and MAilbox role installed, i have now installed a second Exchange 2013 SP1 server and just installed the mailbox role on this server.

    These servers sit on different subnets and are connected with a hardware VPN, DNS resolution of the servers works fine both ways.

    I migrated a test mailbox from SERVER1 to the new mailbox server and that completed successfully, in ECP i can see the mailbox is located in the new database and i can send emails from that mailbox without issue, however the mailbox cannot receive any emails, internal or external.

    When i check the delivery report on SERVER1 i get the following error.

    4/11/2015 8:50 PM SERVER1

    The message was submitted to SERVER1


    4/11/2015 8:50 PM SERVER1

    Message was received by SERVER1 from SERVER1.

    4/11/2015 8:50 PM SERVER1

    The message has been queued on server SERVER1′ since 4/11/2015 8:50:04 PM (UTC+10:00) Brisbane. The last attempt to send the message was at 4/11/2015 8:47:14 PM (UTC+10:00) Brisbane and generated the error ‘[{LRT=};{LED=};{FQDN=};{IP=}]’.

  36. Ryal

    Hi Paul,

    I have a test environment in which I would like to move mailboxes from one 2013 server to another. The issue I’m having, is that mailboxes on the 2nd server are unable to send or receive mail. In the delivery report, it gets stuck on pending. I have created another server, but when I create mailboxes on this, I get the same issue where they cannot send mail.

    Any idea why this is happening?

    1. Avatar photo
      Paul Cunningham

      Your description is too vague, sorry. Gets stuck on “pending” where? Where do you see that?

  37. john

    Can we use this to move mailboxes into another forest?

  38. Chris

    I migrate a mailbox from Exchange 2007 to 2013 and the migration works fine but when I try to move them to a different database on the 20013 Exchange server they say complete and the don’t move to the target database that was selected.

    1. Avatar photo
      Paul Cunningham

      The second move is probably failing because there is already an existing move request for that users (from the first move). When that happens the mailbox is removed from the migration batch, and the batch completes successfully, which is slightly confusing until you open the details of the migration batch and see that the mailbox is no longer in the batch.

      1. Erin Steadman

        This is what I needed. Thank you so much


  39. Jon

    This is brilliant information (as is expected from your site). I do however have a question I cannot find the answer to anywhere. How do I view the mailboxes in a batch migration that has not yet been started…?

    Scenario: I create a migration batch during production hours, that I want to kick off during off hours. Evening comes, and I want to do a final check that the mailboxes in the migration batch are definitely the ones I want to migrate…how do I view them? I can get the count of mailboxes in the batch using get-migrationbatch, but a get-migrationuser shows me nothing. I can find nowhere in the EAC or using various PS commands that get me this information…

    I tried pulling the information using get-mailbox as there are several properties related to batchmove status etc. but these fields are blank, presumably populated when the batch starts/completes.

    Any ideas would be much appreciated. I’m sure I am just missing something obvious 🙂

  40. Mark Dickson

    There’s no “reply” button to respond directly to you for some reason.
    I never found out why all the moves I would try in that environment would queue for an hour then replicate. I had to just deal with it and move on as I was contracted for the migration and had a deadline to meet. I have worked in several other 2010-2013 mixed and hybrid environments and not had that specific issue, so I don’t have a good theory either, sorry.

  41. TG

    “The Exchange 2013 servers will also apply their own intelligence to mailbox moves, slowing down or even halting a move if the server health is at risk (for example high CPU utilization).”

    Do you know if this includes disk space – ie if the disk space for your transactions logs is getting close to full, will it halt migrations?

  42. Ate

    I have a question about a failed migration of a user mailbox. I moved about 20 mailboxes and 4 have failed because the destination database had a limit of 2.3 GB (or so, I am not sure), while those 4 mailboxes were a lot larger. I increased the limit on destination mailbox, but when I try to migrate those 4 nothing happens. I guess they are “paused” but I haven’t found a way to resume them. What should I do?

    Oh yes, this was all a part of migration from 2010 to 2013

  43. Raphael

    Hi Paul,
    I used to follow many times you article to achive correclty Exchange 2007/2010 to 2013 migrations.
    Most of the time I’m using the EAC to create the move requests, but something disturb me a little.

    I don’t know if I’m right, but it seems to me, that it take longer to migration the same amount of data from an Exchange 2003 to 2010, that it takes today from 2007/2010 to 2013.
    I notice that the number of simultaneous thread increases from 2 to 8 with the new version and I believe that this is the reason of the very long time to transfert mailboxes.

    Recently I moved a 50 Go database, it took almost 24 hours and the storage was based on SSD Raid5.

    Could you tell me if also notice that it take more time with 2013 than before and do you if it possible to decrease the number of simultaneous threads of move ?

    Hope I’m clear… and thanks in advance for you advices.


  44. Joseph

    I am about to migrate mailboxes from Exchange 2010 to Exchange 2013. Should I create database copies before migrating mailboxes or after?



  45. Ziv Rivkis

    Paul, I’ve noticed that you’ve used a -SuspendWhenReadyToComplete. I was just looking over the technet pages for this command and saw this “The SuspendWhenReadyToComplete switch specifies whether to suspend the move request before it reaches the status of CompletionInProgress. Instead of this switch, we recommend that you use the CompleteAfter parameter.” Any idea why and/or does it really make a difference?

    1. Avatar photo
      Paul Cunningham

      Depends how you want to control the completion. If you want them to suspend until you actually initiate the completion yourself, then use the suspend option. If you’d just prefer they complete themselves after some time, then use the other option.

      Also, the -CompleteAfter parameter used to be reserved for Microsoft internal use only. That seems to have changed sometime recently.

  46. Benjie

    Hello Paul

    I just want to check with you about the migration of exchange 2007 to 2013, I have successfully done the mailbox migration to 2013. My question is Do I need to move also the distribution, security group, room resources and contact created in exchange 2007 to exchange 2013?

    Thanks in Advance

    1. Avatar photo
      Paul Cunningham

      Room resources are a type of mailbox, so they need to be moved. Groups and contacts do not need to be “moved”.

  47. Steve

    I wash hoping to do both in one cmd – oh well a two step cmd it is 🙂

  48. Steve

    I want to migrate users via power shell that have UM voice mail and I imagine I will need something specifying the um dial plan ?

    I get parameter cannot be found that matches parameter name ‘UMMailboxPolicy’. when I specify …

    New-MoveRequest -Identity ‘’ -TargetDatabase “xyz Mailbox Store” -UMMailboxPolicy “Exch2013 Default Policy”

    Can you please offer any assistance please ?

    1. Avatar photo
      Paul Cunningham

      There’s no -UMMailboxPolicy parameter for New-MoveRequest. You can refer to the TechNet page for New-MoveRequest to see available parameters.

      UM is not an area I’m very familiar with. You’re trying to change UM policies as part of the migration? Have you tested doing that after the mailbox is moved?

  49. farshad

    Hi Pual,

    I migrated one of our users from 2007 to 2013 and Exchange selected target database automatically and migration completed successfully. Now I want to move same user to another Database in 2013, I created migration task and after a while it showing me that migration was successful and completed but nothing happening , mailbox still is in automatically selected database.

    1. Avatar photo
      Paul Cunningham

      What are you actually asking for help with?

      If you create a migration request and specify the target database it will be moved to that database. If you don’t specify a target database then one will be chosen automatically.

  50. emir

    Paul i resolve the replication error and deploy a new additional domain controller with server 2012 r2 standard operating system.
    today I move all of the FSMO roles to the new ADC and make it as a DC for my domain
    and demote the old DC that was 2008r2
    Now i want to install the new installation of exchange 2013 on the other server that is joint to this domain .
    but the ADSIEdit problem is the same

  51. emir

    Hi Paul
    recently I finished Exchange 2013 installation and i want to do migration from exchange 2010 sp3 to exchange 2013.

    first off all when i want to migrate one of the test mailbox from 2010 database to 2013 database this error has appeared:

    Cannot open mailbox /o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=EXC2013/cn=Microsoft System Attendant.

    after that i open the adsiedit and look at this path in my organization but i couldn’t find my exchange 2013 server.

    everything is working so good, i mean i can send an receive internal and external mail but mailbox migration doesn’t work.

    what can i do?

    1. Avatar photo
      Paul Cunningham

      Recently you were emailing me with what sounded like unhealthy AD replication. Perhaps you are still having problems with that.

      Do you see different things in ADSIEdit when you bind to different domain controllers?

      1. emir

        actually after exchange 2013 installation i couldn’t see 2013 server in ADSI edit
        but i can send and receive mails easily.

        no any difference, the ADSIEdit is the same

  52. mk

    Hi Paul,

    I am a great follower of your publications and I must say you have been of great help.

    I have a problem, I am trying to move mailboxes from Exchange 2010 to an Exchange 2013 mail server. I keep getting this error when I attempt to move a mailbox:

    “Object reference not set to an instance of an object”

    Would you know what could be causing this?

    1. Avcap

      Same issue here, “Object reference not set to an instance of an object”, already found a solution to this?

  53. vman

    Ok Paul thanks for all your information..

  54. vman

    For exchange 2007 users that is being migrated to exch 2013

  55. vman

    I just want to be clear on this then, so they cannot use outlook while their email is being migrated?

    1. Avatar photo
      Paul Cunningham

      Sounds like you want some assurances about the user experience during the migration. Yes, they can keep using their mailbox. But more importantly, what you should be doing is a test migration of one mailbox (either a test mailbox or your own) and make notes about the step by step process as well as the user experience before, during and after the move, to validate any user scenarios that you have (eg shared mailbox access, delegate access, mail flow, mobile device usage, OWA, etc etc).

  56. vman

    We are going to be migrating from exch 2007 to exch 2013. This will be done over a weekend so we dont need to have the 2 servers setup for coexist but my question is, when migrating the users from exch 2007 to exch 2013, they have to be out of thier email at the time correct because there is no way to have them in their email during this migration?

    1. Avatar photo
      Paul Cunningham

      The mailbox moves will require them to restart Outlook to reconnect after the move completes.

  57. Mark Dickson

    I started a large migration batch using the new commands, it is going well with only a few very large mailboxes still moving. I’ve been requested to go ahead and complete some of the mailbox moves, I did not use the -AutoComplete option, but when I issue a Resume-MoveRequest on a specific mailbox it does not complete the move. Do I have to complete the entire batch at one time? Hopefully this is not the case, I’ve spent 3 days seeding over 1TB of mailbox moves that I need to complete in stages and would hate to start over using a different approach.

    1. Avatar photo
      Paul Cunningham

      When you issue the resume command is it throwing an error?

      Or does the move request resume for a short time then autosuspend again? If so then you can use Set-MoveRequest to set the SuspendWhenReadytoComplete to $false for just that move request and then resume it, and it should complete without impacting the rest of the suspended moves.

      1. Mark Dickson

        Thanks for the reply.
        I wasn’t getting an error, the move log would say something like,

        12/9/2014 11:27:12 AM [SERVERNAME] ‘Mark Dickson’ resumed move request.
        12/9/2014 11:27:18 AM [SERVERNAME] Job resumed with status ‘InProgress’.
        12/9/2014 11:27:18 AM [SERVERNAME] Relinquishing job.

        But apparently I just needed to wait it out, because almost exactly an hour later all 9 of the moves I was trying to complete began replication and completed. Oddly only a couple of them actually list a status of “Completed” in the details window of the EAC migration status. The others still say “Synced” but their logs indicated they are complete and they are in the new databases.

        Although not needed in this case now, I liked your idea of manually changing the SuspendWhenReadytoComplete to $false for the individual move requests. Thank you for your advice.

        1. Rhonda

          Mark – did you ever figure out what your one hour issue was?
          I create my migration batch and it’s queued for exactly 60 minutes. I thought maybe something was timing out on the firewall but I can’t see anything.
          It does start and complete without error after the 60 minute mark but this is frustrating. We have an Exchange 2010 Hybrid setup.


  58. arun

    previously we used third party certificate, but during migration we used internal windows CA….we generated certificate request in exchange 2013 and complete with internal CA. After that we export it and import it in exchange 2007 and in ISA 2006 also..the certificate have all SAN name including

  59. arun

    sir recently we migrated 2007 to 2013, After moving mail box when opening outlook it asking for password. We give password and select remember my password..after this outlook works fine..but after restarting system again it ask password..every time we restart system when opening outlook for first time asking password…we use ntlm authentication.

    1. Avatar photo
      Paul Cunningham

      NTLM should not be prompting for passwords. Its possible you’ve got a certificate problem preventing it from automatic logon.

      1. Brian

        Hi Paul,

        We are in the process of migrating user mailboxes from 2010 to 2013. After the migration is complete, the client opens Outlook and is prompted for credentials. The username field contains their email address which will not authenticate. If we remove the domain name portion and check the box to remember the password, they are able to authenticate. Then they are prompted with the message “The Microsoft Exchange Administrator has made a change that requires you quit and restart Outlook”. They then close Outlook and it reopens successfully.

        Thanks for any help!

        1. Avatar photo
          Paul Cunningham

          I would say that you haven’t set the Outlook Anywhere settings on Exchange 2013 to the correct authentication type.

        2. Brian

          Thanks for the quick reply! I have check the Outlook Anywhere settings and they look to be correct. Here are the settings:

          SSLOffloading : True
          ExernalHostname :
          ExternalClientAuthenticationMethod: Ntlm
          InternalClientAuthenticationMethod: Ntlm
          IISAuthenticationMethods : {Basic, Ntlm, Negotiate}

          The strange piece is that this is not consistent across all of the migrated users. Some do not receive the authentication prompt at all and complete the migration as expected.

          1. Lou

            This is an old thread but in case someone else has this issue. I believe the issue associated with only some users being prompted for a password when starting Outlook is that Outlook Anywhere on the Exchange 2010 servers is disabled. They get prompted for a password if they have access to a delegate mailbox that is still on Exchange 2010.

  60. vijay prabhu

    sir we have migrated exchange 2007 to exchange 2013 and we are in mailbox move stage. but after mailbox move its taking more than 24hrs to take reflect to client machine(Windows XP, Outlook 2007 SP3). Is there any alternate to force the new server changes. Thanks In advance.

    1. Avatar photo
      Paul Cunningham

      There’s a whole range of bugs with Windows XP clients and Exchange 2013. You’re running an unsupported operating system and an old version of Outlook. Do you see the same problems with the latest version of Office on at least Windows 7?

      1. vijay prabhu

        Thanks for your valuable response sir, Yes we have some of the windows 7 with outlook 2010, these machine also not getting new exchange connection, for all machine we are taking remote and configuring outlook manually, still we are having 1000+ mailbox to move, any suggestion for quick replication.

  61. Chris

    Trying to migrate from 1 exchange 2013 server to a different exchange 2013 server. Used move request to move user mailboxes, seems to have worked. Problem is when I shut the old server down, exchange on the new server stops working. User email disappears from the inbox and unable to send. Do you have or know of a step by step to migrate from 1 server to a different server?

    1. Avatar photo
      Paul Cunningham

      There’s a lot more to it than just moving the mailboxes. What else have you done already in terms of configuring the new server?

  62. Mitzi

    Any script to move [b]bulk[/b] mailboxes from specific DB to office 365? I know you can select a distribution group, but not all users in DG are to be migrated to O365.

    I’ve successfully been able to remote connect to O365, but the Get-Mailbox -Database test – is not recognized (through Windows PowerShell). And if I do it through Exchange Shell I get “user has already primary mailbox” whether the user is licensed or not.

    And if I do it through CSV – what should I exactly include in the -identity? EmailAddress?

    Thanks mate.

  63. John

    Hi Sir,

    I got some error when moving user mailbox from exchange 2007 mailbox database to exchange 2013 mailbox database.

    Data migrated:
    Migration rate:
    Error: MigrationPermanentException: Mailbox size 237 MB ‎(248,501,907 bytes)‎ exceeds target quota 122.9 MB ‎(128,849,920 bytes)‎. –> Mailbox size 237 MB ‎(248,501,907 bytes)‎ exceeds target quota 122.9 MB ‎(128,849,920 bytes)‎.

    Your feedback is very appreciated

    1. Avatar photo
      Paul Cunningham

      “Mailbox size 237 MB ‎(248,501,907 bytes)‎ exceeds target quota 122.9 MB”

      There you go 🙂

  64. Rob Derbyshire

    Hi Paul
    When moving from 2007 to 2013, which Servers actually copy the data?
    If we have a 4 node DAG (single mbx role), would running the batches in PS on each node separate the work?

  65. Chris


    Have you discovered how to control the migration rates for Migration Batches? All documentation i have found states that the same MSExchangeMailboxReplication config file controls these limits. I have set the limits on all servers and restarted the service but Exchange continues to process all the mailboxes in the batch at the same time.


    1. Je Sum

      consider implementing throttling

  66. Chris Wagner

    Hello Paul

    I have a question for the moving of a mailbox named Discovery Search Mailbox
    DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}

    Should this mailbox be migrated to Exchange 2013?

    There is a user Account in AD Container Users named DiscoverySearchMailbox

    Is it safe to delete or do you suggest to migrate it to exchange 2013?

    Your feedback is very appreciated

Leave a Reply