After some weekend Exchange mailbox migrations I wanted to check the status of mailboxes. This is where I use the Get-MoveRequestStatistics for the all mailboxes or database.

Issuing the following command: Get-MoveRequestStatistics -MoveRequestQueue “*databasename*” will return to you the status of all the mailboxes on that data store. This is good; but what if you are only interested in the status of the databases that are currently being migrated over.

Issuing the following command seems to do the trick:
Get-MoveRequest | where {$_.status -ne ”Completed”} | Get-MoveRequestStatistics

As you see above we used the ‘where’ clause to select all of the database moves that are not in a “Completed” status.

Another command I found useful is used to show if mailboxes exist within a particular database, which is very useful when migrating mailboxes and validating if they old database is now free of mailboxes.

The command I use is: Get-MailboxDatabase -Identity “OLDSTORE1” | Get-Mailbox