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 : E15Admin@exchangeserverpro.net OwnerId : exchangeserverpro.net/Users/E15Admin NotificationEmails : {E15Admin@exchangeserverpro.net}
We could add more email addresses for notification if we need to.
[PS] C:adminmigration>Get-MigrationBatch "Head Office Batch 1" | Set-MigrationBatch -NotificationEmails e15admin@exchangeserverpro.net,administrator@exchangeserverpro.net [PS] C:adminmigration>Get-MigrationBatch "Head Office Batch 1" | fl submittedbyuser,ownerid,notificationemails SubmittedByUser : E15Admin@exchangeserverpro.net OwnerId : exchangeserverpro.net/Users/E15Admin NotificationEmails : {E15Admin@exchangeserverpro.net, administrator@exchangeserverpro.net}
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 aisha.bhari@exchangeserverpro.net Identity Batch Status LastSyncTime -------- ----- ------ ------------ Aisha.Bhari@exchangeserverpro.net Move Aisha Bari Completed 8/07/2014 10:27:05 PM [PS] C:adminmigration>Get-MigrationUser aisha.bhari@exchangeserverpro.net | Get-MigrationUserStatistics Identity Batch Status Items Synced Item s Sk ippe d -------- ----- ------ ------------ ---- Aisha.Bhari@exchangeserverpro.net 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 ippe d -------- ----- ------ ------------ ---- Aisha.Bhari@exchangeserverpro.net Move Aisha Bari Completed 7090 0 bob.winder@exchangeserverpro.net 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 Famida.Ghtoray@exchangeserverpro.net Head Office Batch 1 Syncing 0 0 Ferzana.King@exchangeserverpro.net Head Office Batch 1 Syncing 0 0 Frank.Warboys@exchangeserverpro.net Head Office Batch 1 Syncing 0 0 Garth.Gibbons@exchangeserverpro.net Head Office Batch 1 Syncing 0 0 Gary.Hopkins@exchangeserverpro.net Head Office Batch 1 Syncing 0 0 Gavin.Welch@exchangeserverpro.net 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"
Summary
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.
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?
Hi Paul,
I have a question..
If the migration batch is still on process, the users still can access their mailbox or no ?
Thanks
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.
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
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?
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.
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?
Picked at random I believe.
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?
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?
Thanks
Rob
Yes.
Paul,
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?
Thanks,
Peter
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.
Anyone moving mailboxes during business hours? Just curious?
Yeah! Most users I migrated, was during business hours. Clients just had to restart the Outlook client when the migration finished.
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
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?
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.
Why are you changing namespaces during the migration, instead of just moving the existing namespace?
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).
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!
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.
If both locations are part of the same Active Directory then they can already do that.
Paul,
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?
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.
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
Marco
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.
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
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.
Thank you Paul. You helped me a lot 😉
Have a nice day
Marco
what happend with incoming emails when a mailbox is in migration progress and it status is copyingMessages
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.
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?
It’s like the 2010 doesn’t know where the migrated mailbox is.
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.
Have you created any new receive connectors on the 2013 server?
I added a new receive connector on the 2013 with a single IP and it started working.
The simple things in life…
Thanks
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.
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
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?
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.
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.
thanks Paul. Will try and see.
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.
thanks
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.
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
I wouldn’t do it. If you think you need to repair a mailbox, do it before or after you migrate it.
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…
Thanks
Dan
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.
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?
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).
Ionut
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.
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?
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.
Rami.
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.. 🙂
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.
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.
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
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.
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?
Thanks
You’ll need to clear any existing move requests for those mailboxes (even completed ones) before you can move them again.
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)
Sounds like an SMTP connectivity problem to the new server.
any suggestions on where i should check to fix this? I added an internal SMTP connector on SERVER1 and pointed it to server2.
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).
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
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
Pending
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=}]’.
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?
Your description is too vague, sorry. Gets stuck on “pending” where? Where do you see that?
Can we use this to move mailboxes into another forest?
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.
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.
This is what I needed. Thank you so much
Erin
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 🙂
Pingback: Removing mailbox database, word about arbitration mailboxes, and mailbox move statuses. | Polisz admin blog
Rhonda,
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.
“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?
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
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.
Raphaël
I am about to migrate mailboxes from Exchange 2010 to Exchange 2013. Should I create database copies before migrating mailboxes or after?
Thanks,
Joseph
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?
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.
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
Benjie
Room resources are a type of mailbox, so they need to be moved. Groups and contacts do not need to be “moved”.
I wash hoping to do both in one cmd – oh well a two step cmd it is 🙂
Thanks
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 ‘fred@xyz.com’ -TargetDatabase “xyz Mailbox Store” -UMMailboxPolicy “Exch2013 Default Policy”
Can you please offer any assistance please ?
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?
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.
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.
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
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?
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?
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
Are you sure you’ve installed it into the same AD?
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?
Same issue here, “Object reference not set to an instance of an object”, already found a solution to this?
Ok Paul thanks for all your information..
For exchange 2007 users that is being migrated to exch 2013
I just want to be clear on this then, so they cannot use outlook while their email is being migrated?
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).
Pingback: Completing Individual Move Requests from a Migration Batch
Paul,
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?
The mailbox moves will require them to restart Outlook to reconnect after the move completes.
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.
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.
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.
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.
Thanks,
Rhonda
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 legacy.myorga.in
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.
NTLM should not be prompting for passwords. Its possible you’ve got a certificate problem preventing it from automatic logon.
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!
I would say that you haven’t set the Outlook Anywhere settings on Exchange 2013 to the correct authentication type.
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 : mail.ourdomainname.com
InternalHostname: mail.ourdomainname.com
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.
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.
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.
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?
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.
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?
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?
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.
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
JC
“Mailbox size 237 MB (248,501,907 bytes) exceeds target quota 122.9 MB”
There you go 🙂
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?
Cheers
Rob
Paul,
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.
Thanks
consider implementing throttling
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
Chris
I suggest you migrate it.