Mailbox Move In Exchange 2010…

MS Exchange

As I was playing with the Exchange 2010 Console, the “Move Request” section under Recipient Configuration caught my attention. But, there was no option other than to export the list. So, I decided to run a mailbox move and see what happens. Two types of mailbox move is supported in 2010.

  • Local Move – Moving a mailbox from one database to another on the same or different server, as long as the servers are in the same exchange organization.
  • Remote Move – Moving a mailbox to a database in a different forest.

More Info Added:

Mailbox move in 2010 is asynchronous and hence users can still access data while the mailbox gets moved. The actual move is performed by a new service in 2010 named “Exchange Mailbox Replication” service. This service runs on a CAS server and that indicates that the CAS servers are responsible for the mailbox moves.

The mailbox’s dumpster IS moved, as long as both source and destination servers are 2010. The mailbox move history is maintained in the mailbox.

Mailbox move from Exchange 2000 and 2007 SP1 to 2010 is not supported.

In order to move a mailbox from one database to another within the same organization, launch EMC and navigate to Recipient Configuration -> Mailboxes. Right click the mailbox in question and select “New Local Move Request”.

Move1

Select the target database for the mailbox.

Move2

Select your move option – whether to skip the mailbox move if corrupted messages are found or to skip a few corrupted messages & go ahead.

Move3

A summary of the mailboxes that are moved is displayed. Click New to continue.

Move4

The wizard checks and initiates the mailbox move by submitting a mailbox move request. Take a close look at the cmdlet & you will find out that the cmdlet run is New-MoveRequest and not Move-Mailbox. Click Finish to complete your mailbox move request.

Move5

Exchange hasn’t finished moving the mailboxes, but has only received a request to move. In order to find out the status of the mailbox move, we need to go to the “Move Request” section. The list of mailboxes getting moved along with the status is displayed. You can use Get-MoveRequest cmdlet to get the status of the mailbox move if you prefer to use the shell.

Move6

You can double click on any mailbox to get more information.

Move7

In short, mailbox move process has been slightly changed in Exchange 2010. The admin submits a move request to the server and the actual move is run in the background & hence it would appear that the mailbox move wizards have completed pretty quickly even for large mailboxes. The reason being the process runs in the background, whereas in Exchange 2007 the wizard actually runs through the entire process & once you finish the wizard, all the mailboxes will be in the target database.

To move a mailbox using the shell, run the command

New-MoveRequest –identity username –TargetDatabase “database name”

Once the mailbox move is initialized, you can check the status by running

Get-MoveRequest –identity username

Other Popular Articles


MS Exchange

Scripting Agent Initialization Failed: “File is not found” Error During Exchange 2016 Setup

MS Exchange

EAC Access While Co-Existing Exchange 2013 With 2010

MS Exchange

Delete All Calendar Entries In An Exchange 2010 Mailbox

37 thoughts on “Mailbox Move In Exchange 2010…”

  1. I am getting below error for one user while migrating different database on the same server.

    Error: Couldn’t switch the mailbox into Sync Source mode.
    This could be because of one of the following reasons:
    Another administrator is currently moving the mailbox.
    The mailbox is locked.
    The Microsoft Exchange Mailbox Replication service (MRS) doesn’t have the correct permissions.
    Network errors are preventing MRS from cleanly closing its session with the Mailbox server. If this is the case, MRS may continue to encounter this error for up to 2 hours – this duration is controlled by the TCP KeepAlive settings on the Mailbox server.

    Reply
  2. hello,

    when moving mailbox from Exchange 2003 to 2010 movement stuck at 95%, result as given below.

    Messages have been enumerated successfully. 0 items loaded. Total size: 0 B (0 bytes).
    Initial seeding completed, 0 items copied, total
    size 0 B (0 bytes).
    Final sync has started.
    Stage: FinalIncrementalSync. Percent complete: 95.
    Waiting for mailbox changes to replicate.

    Reply
  3. Hi,

    If we dint mention any database name in the New-MoveRequest cmdlet which database will be taken by Default. for example my powershell script is like below…

    $MailboxArray = Get-Mailbox -OrganizationalUnit “OU=$TenantID,$BaseADPath” -DomainController $PreferredDC

    foreach ($mailbox in $MailboxArray)
    {
    Write-Host “Moving Mailbox $mailbox” -foregroundcolor cyan

    $mailbox | New-MoveRequest -Confirm:$false -DomainController $PreferredDC
    }

    If you see the above New-MoveRequest cmdlet, I dint mention any database name so by default which database will be taken. please let me know as soon as possible.
    Please send me a mail @ smooth.munna@gmail.com

    regards,
    Bhalotia

    Reply
    • Hi Bhalotia,

      The move requests are handled by the CAS servers (MRS) and the CAS will automatically load balance the mailboxes among the databases you have.

      Reply
  4. Thanks for detail information about Movemailbox and Moverequest you put up on here. I just want to add that if users select “skip a few corrupted messages” option, they might have to face the data loss problem. So, I would suggest to keep a backup copy before running these command line parameters.

    The data loss issues can be resolved by using a third party tool. There are a lot of third party application available in the market which help to move unlimited users mailboxes at a time. One of the best aspects of these tools is that they can repair the corrupted data if they found during the analyzing process. One such tool that I know is Stellar Phoenix Exchange recovery software : http://exchange.stellarservertools.com/

    Kay Adams

    Reply
  5. Hi Rajith,

    The move is on the same server (exchange 2010)
    I created an second database and moved a couple of mailboxes from one to another. I noticed this because the size of the old database wasnt shrinking after moving the database.

    Reply
  6. Hi Emiel,

    If you are using Exchange 2010 SP1:

    Instead of removing the source mailbox immediately following a successfully completed
    move, Exchange puts the source mailbox into a "SoftDeleted" state. This means that
    the source mailbox is kept until the deleted
    mailbox retention period expires for the source database.

    Thanks

    Reply
  7. I was recently moving mailboxes to another database. The move went ok but i noticed that the old database didnt get any smaller.

    As i investigated i noticed that the mailbox i moved stays in the old database. Do you know how i can delete the mailbox out of the old database?

    Emiel

    Reply
  8. Anyone know why exactly you need SP2 for 2007? I have a dying production server and the reboots required after the installation of the new service pack is way more frightening right now than anything else ;(

    Reply
  9. This whole "cmdlet-only" procedure s***s bigtime. We are sysadmins, not coders! Wake up MSFT!!!
    I've spent at least 1 hour finding the correct line for moving one exchange 2010 mailbox to 2007. Every time the error message said something that worth "nothing".
    What a piece of crap.

    Reply
  10. Ok got it sorted thanks,
    This Blog Linked From Here
    This Blog
    Linked From Here
    .
    Thursday, 3 September 2009
    Can’t Connect Outlook 2003 To Exchange 2010. Unable To Open Your Default E-mail Folders…

    I was trying to connect to my Exchange 2010 RC Server with Outlook 2003, but couldn’t connect successfully. I tried with Outlook 2007 & 2010 and was able to connect successfully. That made me search whether Outlook 2003 is a supported client and it is. The error message is “Unable to open your default e-mail folders”

    After playing around for a while, I found the solution. Before I jump in to the fix, let me explain a few changes in Exchange 2010 in terms of MAPI connectivity.

    •All MAPI clients connecting to Exchange 2010 server connects to the mailbox through the CAS Server.
    •A new service named Exchange RPC Client Access is introduced in 2010 CAS which handles all MAPI connections.
    •All MAPI clients connect to the mailbox server directly in Exchange 2007.
    Now that we know about the new RPC Client Service running on the 2010 CAS Server, lets bring up the full info by running Get-RpcClientAccess | fl

    We can see that this service needs rpc encryption and it is set to True by default.

    Same is the case with Outlook 2007 & 2010 profiles! Encryption between Outlook and Exchange is enabled by default, which explains why these clients can connect to Exchange 2010 without any issues.

    Outlook 2003 profiles don’t enable encryption by default.

    Once I checked the box, I could connect to my 2010 mailbox.

    You can also disable the requirement of 2010 CAS servers to have encryption enabled by running Set-RpcClientAccess –identity servername –EncryptionRequired $false. This is not recommended though!

    Reply
  11. I have moved most of the mailboxes no problem however one or two will not open in Outlook after the move from 2003 to 2010, they are accessible in owa however. I have tried recreating the profile and turning off cached mode etc to no avail. Any advise as I have to move these to the new server. Thanks,

    Reply
  12. Hi Ram,

    The number of databases you need is really upto you. You can have it in the same fashion as 2007 or a different design. You can pick users depending on number of criteria like OU, database, server etc. Get the users using one of those and provide a target database.

    eg, Get-Mailbox -database "dbname" | New-MoveRequest -TargetDatabase "dbname"

    Reply
  13. Great tutorial. Thanks for sharing. That said, in order to move a mailbox from Exchange 2k7 SP2 to Exchange 2010, how to go about creating the target database? Let say I have 10 storage groups in my 2007 Exchange. Do I create 10 new database in 2010 or do I simply submit a new MoveRequest specifying the name of the new database and the install process will take care of the rest? I'm not clear about that so any clarification will be appreciated.

    Reply
  14. To move a mailbox from 2010 back to 2003 you need to find the DN of the 2003 mailbox database. You can do it like this:

    $temp = get-mailbox
    $dn = $temp.database.distinguishedname

    Then move your mailbox like this:

    new-moverequest -targetdatabase $dn

    Reply
  15. Same here when moving back mailbox from 2010 to 2003: I'm unable to specify targetdatabase :( I was able to find syntax for targetdatabase in this command:

    Get-MailboxStatistics -identity testusr -includemovereport | format-list

    but I'm still receving error for new-moverequest that mailbox database does not exist

    Reply
  16. Create a move request that suspends before completion

    This example creates a move request that is suspended after all the initial content is moved, but before the mailbox is locked down and switched over to the new location.

    New-MoveRequest -Identity 'tony@alpineskihouse.com' -TargetDatabase DB01 -SuspendWhenReadyToComplete

    This command could be useful if we wanted all the mailboxes in one location to move to destination at the same time or prepare the destination and keep it ready for switch over with very little to copy over.

    I don't think this will work for Exchagne 2003 mailboxes since they are taken offline while moving, not sure if they become online when move is suspended.

    Reply
  17. Deepak, I have added more info in the article. You can run a move request with -suspend parameter and later on resume it when you want to. But, as mailbox moves are asynchronous & online, you can move it anytime you want, as long as the server can handle it.

    New-MoveRequest rajith -TargetDatabase "Second Database" -suspend

    Get-MoveRequest rajith | Resume-MoveRequest.

    A quick look at the cmdlet doesn bring any date/time scheduling option. I will update the blog if I come across one.

    Reply
  18. Intresting.. So can we schedule the move as we could do we Move-Cmdlet in Exch 2007. Does not seems to have any scheduling in new-MoveRequest. There a switch for suspend in New-MoveRequest but no way to specify time or date. There is Resume-Moverequest commandlet to resume the move. So we may have to resume using windows scheduler or something.

    Rajith- Do Powershell have any command to do schdeduling if so then we could pipe resume-MoveRequest command to it and get a combine funtion.

    Good stuff keep it up

    Reply

Leave a Comment