Don’t forget the System Mailboxes!

If you are planning on upgrading to Exchange 2016 then you will at some point be running in a coexistence model with Exchange 2010 or Exchange 2013. One task that needs to be completed for both the migration too and coexistence with Exchange 2016 is moving all the system mailboxes from Exchange 2010 and 2013 to Exchange 2016. If this step is missed or forgotten it will cause some headaches as most things will appear to be functioning correctly, but you will start seeing some pretty strange issues like not being able to start an eDiscovery search.

Luckily, moving the system mailboxes is pretty simple and can be done with a few PowerShell commands. First, we should find all the system mailboxes and were they are located. The number of system mailboxes and where they live will depend on what versions of exchange you are currently running and if you have moved the system mailboxes previously. In my test environment, I have Exchange 2010, 2013 and 2016 installed. I haven’t moved any of the system mailboxes yet so all the system mailboxes are in their default locations and need to be moved.

To list all the system mailboxes and their locations, use the command.
[PS] C:\> Get-Mailbox -Arbitration | fl Name, ServerName

The system mailboxes and the server that currently hosts the mailbox.


Now we need to make sure that all the system mailboxes are moved to Exchange 2016. To do this, we can run the following command.
[PS] C:\> Get-Mailbox -Arbitration | New-MoveRequest -TargetDatabase <Exchange2016 Database>
You can then monitor the move requests using the command.
[PS] C:\> Get-MoveRequest
When all the system mailboxes have been successfully moved to the Exchange 2016 server, clear the move requests using the command.
[PS] C:\> Get-MoveRequest | Remove-MoveRequest

Now that all the system mailboxes are moved to the Exchange 2016 server everything will function as expected.