When migrating public folders, you need to setup the migration batches. You also need to check the status of public folders migration to see if there is a problem. This helps in troubleshooting the issue (if any) and ensures a smooth migration. To know the status of public folders migration, you can use the PowerShell command Get-PublicFolderMailboxMigrationRequest. This command is applicable for Exchange Server 2013, 2016, and 2019 as well as Exchange Online. Let’s see how to use this PowerShell command in Exchange.
Prerequisites to run the Command
Before running the command, you must ensure that you have the necessary permissions. To run the command, you need the following permissions.
- Public Folders
- View-Only Recipients
By running the following command, you will get the management roles required for the command.
Get-ManagementRoleEntry -Identity *\Get-PublicFolderMailboxMigrationRequest
To assign the permissions, you need to first create the Admin Role in the Exchange Admin Center (EAC). For this,
- Click on Permissions and then click on Adminroles.
- Click on the +
- Give the Role Group a name.
- Click on the + button under Roles.
- Add PublicFolders and View-Only Recipients, and then click on OK.
- Add the members to the group who need to run the PowerShell cmdlet and click Save.
Using the Get-PublicFolderMailboxMigrationRequest Cmdlet
When you run the Get-PublicFolderMailboxMigrationRequest cmdlet, it will by default display the following information.
- The name which is given to the mailbox migration job when creating the job.
- The target mailbox which is being migrated.
- The current status of the migration job.
You will get the above information, if you run the cmdlet with no parameters (see below).
The status of a migration job is limited to the following results.
Let’s look at some of the parameters of the command.
-Status: To get the migration jobs with a particular status, you need to use the command with the -Status parameter, along with the above status values.
Get-PublicFolderMailboxMigrationRequest -Status /status value="" /status
-HighPriority: To get information about the migration batches that have been marked with the priority value of High, Higher, Highest, or Emergency, you need to use the -HighPriority parameter.
Get-PublicFolderMailboxMigrationRequest -HighPriority $true
-BatchName: To get the status of a particular migration batch, you need to use the -BatchName parameter (see the below example).
Get-PublicFolderMailboxMigrationRequest -BatchName /name of="" batch="" /name
Limitations of using this command
To use the Get-PublicFolderMailboxMigrationRequest PowerShell command, you first need to have the right permissions. Also, there is scripting involved in the process. So, it isn’t much of a straightforward job and requires some technical expertise. You need to also consider the fact that the command doesn’t give much information regarding what failed or the reason why the process stopped. You need to check the events in the Event Viewer to get more information and then troubleshoot the issue.
There is always an alternative to everything. To ease the migration of public folders, you can use Stellar Converter for EDB. This application makes it much easier to migrate public folders to another Exchange Server on a separate forest or a different database, or to an Exchange Online setup.
With Stellar Converter for EDB, you can open multiple EDB files from any version of Exchange Server and with no size limit. You can browse the data stores and granularly export the public folders data to PST and other file formats. You can also export the EDB data directly to an Exchange Server database of any version or Office 365. Apart from public folders, the application can also process user mailboxes, user archives, shared mailboxes, and disabled mailboxes.