Moving Exchange mailboxes with more than 50 corrupted items


The maximum number of corrupted items a move request will allow you to enter in the GUI for skipping is 50. If you enter more it will act like it will work then not do the move.

If a mailbox move fails with too many errors you will need to move the mailbox via an exchange PowerShell command line (make sure you run the exchange PowerShell not the general PowerShell). The command line is as follows:

New-MoveRequest -Identity <USERNAME> -AcceptLargeDataLoss -BadItemLimit '<max number of corrupted items>' –TargetDatabase <GUID>

You can get your database GUID's with this command:
Get-MailboxDatabase | fl Identity, GUID

So for example to move testuser to a database with GUID 89261a9a-ce53-41bb-a652-1361bc3616e0 and allow up to 999 corrupted items you would use the following command:

New-MoveRequest -Identity testuser -AcceptLargeDataLoss -BadItemLimit '999' -TargetDatabase 89261a9a-ce53-41bb-a652-1361bc3616e0

Increasing Exchange 2010 local move request limit

Exchange 2010 SP1 reduced the number of users that could be moved at one time within the same database which drastically slowed down our user migration. The limit was originally 5 it is now 2. 

To increase this limit you can edit %programfiles%\Exchange Server\V14\Bin\MSExchangeMailboxReplication.exe.config and change the value for MaxActiveMovesPerTargetMDB to the number you want. Make sure you change it in both locations. I would probably not go over 5. 

Once you do that restart the Microsoft Exchange Mailbox Replication service and your moves should now do more at a time.