Issue Description
In an environment that had a pre-existing Exchange Server 2010 SP3 (multiple distributed servers running Mailbox (M), Hub Transport (HT), Client Access (CAS), and Unified Messaging (UM) roles) and new configured hybrid integration with Exchange Online (ExO) in Office 365 tenant, migrated mailbox users were not able to access / view any of the legacy public folders homed on-premises in Exchange 2010.
Resolution
Here are the troubleshooting steps that we have done to make the legacy Exchange 2010 public folders visible to Office 365 ExO migrated mailbox users.
Step 1: Make remote public folders discoverable
If your public folders are on Exchange 2010 or later servers, you must install the Client Access server (CAS) role on all mailbox servers that have a public folder database. This allows the Microsoft Exchange RpcClientAccess service to be running so that all clients can access public folders. For more information, see Install Exchange Server 2010.
Note: This server doesn't have to be part of the Client Access load balancing. For more information, see Understanding Load Balancing in Exchange 2010.
- Create an empty mailbox database on each public folder server. For Exchange 2010, run the following command. This command excludes the mailbox database from the mailbox provisioning load balancer. This prevents new mailboxes from being added automatically to this database.
New-MailboxDatabase -Server <PFServerName_with_CASRole> -Name <NewMDBforPFs> -IsExcludedFromProvisioning $true
Note: We recommend that the only mailbox that you add to this database is the proxy mailbox that you'll create in step 3. No other mailboxes should be created on this mailbox database.
- Create a proxy mailbox within the new mailbox database and hide the mailbox from the address book. The SMTP of this mailbox will be returned by AutoDiscover as the DefaultPublicFolderMailbox SMTP, so that by resolving this SMTP the client can reach the legacy exchange server for public folder access.
New-Mailbox -Name <PFMailbox1> -Database <NewMDBforPFs>
Set-Mailbox -Identity <PFMailbox1> -HiddenFromAddressListsEnabled $true
- For Exchange 2010, enable AutoDiscover to return the proxy public folder mailboxes.
Set-MailboxDatabase <NewMDBforPFs> -RPCClientAccessServer <PFServerName_with_CASRole>
- Repeat the preceding steps for every public folder server in your organization.
Example:
New-MailboxDatabase -Server SRVR01 -Name PFMailboxDB -IsExcludedFromProvisioning $true
New-MailboxDatabase -Server SRVR02 -Name PFMailboxDB2 -IsExcludedFromProvisioning $true
New-Mailbox -Name PFMailbox1 -Database PFMailboxDB
Set-Mailbox -Identity PFMailbox1 -HiddenFromAddressListsEnabled $true
New-Mailbox -Name PFMailbox2 -Database PFMailboxDB2
Set-Mailbox -Identity PFMailbox1 -HiddenFromAddressListsEnabled $true
Set-MailboxDatabase PFMailboxDB -RPCClientAccessServer SRVR01
Set-MailboxDatabase PFMailboxDB2 -RPCClientAccessServer SRVR02
Run the below command on exchange online PowerShell to make the public folder as remote and add the name of on-premises public folder in remote.
Set-OrganizationConfig -PublicFoldersEnabled Remote -RemotePublicFolderMailboxes PFMailbox1,PFMailbox2,PFMailbox******NAMES OF ALL PUBLIC FOLDER****"
Run the full sync on sync server:
Start-ADSyncSyncCycle -PolicyType Initial
Note: This process take up to 3 hours to replicate.
- For Exchange 2010, enable AutoDiscover to return the proxy public folder mailboxes.
Set-MailboxDatabase <NewMDBforPFs> -RPCClientAccessServer <PFServerName_with_CASRole>
Run the following command in ExO Powershell.
Get-casmailbox –resultsize unlimited | set-casmailbox – PublicFolderClientAccess $true
Note: This is a critically important step. You may also configure individual users to access the legacy on-premises public folder by executing the following ExO Powershell command.
Set-CASMailbox <user_mailbox_alias> -PublicFolderClientAccess $true
Get-CASMailbox <user_mailbox_alias> | fl *public*
References
https://docs.microsoft.com/en-us/exchange/collaboration-exo/public-folders/set-up-legacy-hybrid-public-folders
Migrate Ex2010 Legacy Public Folders to O365
https://docs.microsoft.com/en-us/exchange/collaboration-exo/public-folders/batch-migration-of-legacy-public-folders
Migrate Ex2010 Public Folders to O365 Groups
https://docs.microsoft.com/en-us/exchange/use-batch-migration-to-migrate-exchange-2010-public-folders-to-office-365-groups-exchange-2013-help
https://technet.microsoft.com/en-us/library/dn912663%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396#Scripts
https://thoughtsofanidlemind.com/2013/12/13/migration-modern-public-folders/
https://technet.microsoft.com/en-us/library/dn986544(v=exchg.150).aspx
https://blogs.technet.microsoft.com/exchange/2015/11/02/running-powershell-cmdlets-for-large-numbers-of-users-in-office-365/