How do I ensure the administrator account being used for an Exchange 2007+ Public Folder migration has permissions on all Public Folders?
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"
Get-PublicFolder –Recurse -ResultSize Unlimited | Add-PublicFolderClientPermission –User O365Admin –AccessRights Owner
For Office 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 Office 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.