Run the following cmdlet to ensure that the administrator account that is being used for your Public Folder migration has the necessary permissions on all Source Public Folders:
Exchange 2007 and Exchange 2010:
Get-PublicFolder –Server <ServerName> -Recurse -ResultSize Unlimited | Add-publicfolderclientpermission –Server <ServerName> -User "domain.local/user/migrationwiz" –accessrights "owner"
Exchange 2013+:
Get-PublicFolder –Recurse -ResultSize Unlimited | Add-PublicFolderClientPermission –User O365Admin –AccessRights Owner
Microsoft 365:
For Microsoft 365 it is recommended that you set permissions from the admin portal as the operations to add the permissions might not complete during a PowerShell session. For steps on how to grant permissions in Microsoft 365, please review the article How do I Grant Root Level Permissions to Public Folders.
- Change the user name in the cmdlet to be the name of the administrator account that is performing the Public Folder migration.
- Being a member of the Public Folder Management Group does not provide enough permissions to perform a Public Folder migration.
- When migrating from a Hosted Exchange provider (Source), you will need to ask their support department to run this PowerShell cmdlet for you. If they do not want to provide "owner" access rights, then ask them to add "read" access rights. In many situations, "read" access may grant enough access for the Source Public Folders to be read properly, however, if issues are encountered, "owner" permissions will be required.
- "Owner" permissions are required for the Destination in order for the administrator to create the necessary items.