With the release of Exchange Server 2013, Microsoft has introduced new commands in the Exchange Management Shell (EMS). These include New-MigrationBatch and New-MoveRequest PowerShell commands that can help the Exchange Server Admins to move mailboxes between on-premises Exchange Server and Exchange Online in a hybrid setup. Below, we will be discussing the differences between these two commands. We will also be discussing how to use New-MigrationBatch and New-MoveRequest PowerShell commands.
About New-MigrationBatch and New-MoveRequest Commands
The New-MigrationBatch and New-MoveRequest commands in PowerShell are used to move mailboxes from one Exchange Server to another, from one database to another in the same server, or to migrate Exchange mailboxes to Exchange Online. If you have to move several mailboxes at the same time, the migration batch command is ideal.
In the case of migrating to a newer version of Exchange Server, you need to make sure that the current Exchange Server and the new setup can coexist. It is best to check with your Microsoft vendor or Microsoft coexistence matrix before proceeding.
Though both commands are used for moving mailboxes, here are some differences between these commands based on certain factors:
|Immediately starts the mailbox transfer||No||Yes|
|Migration status report||Yes||No
|Exchange Server 2010 support||No||Yes|
|Makes use of migration mailbox||Yes||No|
|Executes if the mailbox is mounted||No||No|
|Migrate public folders and disabled mailboxes||No||No|
|Works with offline EDB files||No||No|
|Available in Exchange Admin Center||Yes||No|
How to Use the New-MoveRequest Command?
To move a mailbox from one database to another, you can use the command as given below.
New-MoveRequest "email address" -TargetDatabase "database name"
If you like to move the user archive to another database, use the command as given below.
New-MoveRequest "email address" -TargetDatabase "database name" -ArchiveTargetDatabase "database name"
To move the mailbox only and leave the archive as it is, use the below command.
New-MoveRequest "email address" -TargetDatabase "database name" -PrimaryOnly
To move the archive only and leave the mailbox as it is, use the below command.
New-MoveRequest "email address" -TargetDatabase "database name" -ArchiveOnly
How to Use the New-MigrationBatch Command?
You need to specify the name of the batch and the CSV file which has the mailboxes to move. After creating the batch, you need to start it.
New-MigrationBatch -Local -Name "name of batch" -CSVData ([System.IO.File]::ReadAllBytes("path to csv file")) -TargetDatabases "destination database name"
Start-MigrationBatch -Identity "name of batch"
Alternative Solution to Move Mailboxes
The above commands work fine when you have a good setup and everything is working well. However, they lack on part of reporting. Also, if something happens, there is no continuation and you need expertise and resources to resolve the issue. In addition, if something happens to the Exchange Server due to server or operating system failure, you will not be able to use these commands to move your data.
In such situations, you can look for a third-party EDB to PST Converter software. One of the best applications for moving mailboxes is Stellar Converter for EDB. With this application, you can directly open Exchange Server Databases (EDB) files with no limitation on size and without having a running Exchange Server.
You can browse through the data stores and granularly export to PST and other file formats. You can use the application to export directly to a live Exchange Server database or an Office 365 or Microsoft 365 tenant. You can export users’ mailboxes, user archives, shared mailboxes, disabled mailboxes, and even public folders.
As you have seen, New-MigrationBatch and New-MoveRequest are powerful commands, but you need resources and expertise to run these commands. However, these commands can only work if the Exchange Server is running and well configured. In case of a server failure or to export data from an orphaned server or decommissioned Exchange Server, you will need to reconstruct the Exchange Server from scratch. In such cases, you can use Stellar Converter for EDB to export mailboxes from EDB file to a live Exchange Server database or Office 365. With this application, you will be able to reduce the time of migration with much less resources.