While
working on a project for on-premise Exchange 2010 SP3 to Exchange Online
migration, I came to scenario where users whose mailboxes are migrated to
Exchange online required access to Public folder which are homed on on-premise
Exchange 2010 Server. An Office 365 user who is not represented by a Mail-user object
on-premise AD, won't be able to access legacy on-premise public folder.
I
referred to Microsoft TechNet article "Configure legacy on-premises
public folders for a hybrid deployment" Article URL which
cover all the prerequisites and task which need to be performed however my this
blogs contain the step by step guide with detailed snapshots.
My environment-
- Exchange Server 2010 Service Pack 3 RU 15.
- Hybrid with Office 365.
- Outlook Anywhere should be enabled and functional on the on-premise Exchange 2010 Server.
- Exchange online organization is upgraded to latest version which is supported for Public Folder.
- Outlook Clients are upgraded to the latest update.
If public folders are
on Exchange 2010 or later servers, then we need to install the Client Access
Server role on all mailbox servers that have a public folder database. This
allows the Microsoft Exchange RpcClientAccess service to be running, which
allows for all clients to access public folders.
Step 2- Create empty mailbox database on each public
folder server-
New-MailboxDatabase
-Server PFServerwithCAS -Name PFMBDB -IsExcludedFromProvisioning $True
Confirm DB-
Step 3- Create Mailbox for Proxy-
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 PFMBDB
Provide Password for
this mailbox “P@ssw0rd”
UserPrincipleName pfmailbox1@domain.com
Step 4- Hide the mailbox from Address List-
Set-Mailbox
-Identity PFMailbox1 -HiddenFromAddressListsEnabled $true
Step 5- Enable Autodiscover to return the proxy
public folder mailboxes
Set-MailboxDatabase
PFMBDB -RpcClientAccessServer MaiboxServerName
Note- Repeat the preceding steps for every
public folder server in your organization.
Step 6- Download Scripts
- Sync-MailPublicFolders.ps1
- SyncMailPublicFolders.strings.psd1
Save the files to the local
computer on which you’ll be running PowerShell. For example, C:\PFScripts.
Step 7- Configure Directory synchronization-
The Directory
Synchronization service doesn’t synchronize mail-enabled public folders.
Running the following script will synchronize the mail-enabled public folders
across premises. Special permissions assigned to mail-enabled public folders
will need to be recreated in the cloud since cross-premise permission are not
supported in Hybrid Deployment scenarios.
- On the legacy Exchange server, run the following command to synchronize mail-enabled public folders from your local on-premises Active Directory to O365.
NOTE- Credential is
your Office 365 user name and password, and CsvSummaryFile is the
path to where you would like to log synchronization operations and errors, in
.csv format.
Review the error on the log
file to resolve the issue. For me the error was “Proxy addresses is already being used, please choose another proxy
address.” I fixed this and everything went well.
Step 8- Configure Exchange Online users to
access on-premises public folders
The final step
in this procedure is to configure the Exchange Online organization and to allow
access to the legacy on-premises public folders. Enable the exchange online
organization to access the on-premises public folders. You will point to all
the proxy public folder mailboxes that you created.
Connect to
Exchange Online and Run below Command-
Set-OrganizationConfig
-PublicFoldersEnabled Remote -RemotePublicFolderMailboxes PFMailbox1
We must wait until Active Directory synchronization has completed to see the changes. This process can take up to 3 hours to complete. However, we can always force directory synchronization at any time.
Step 8- How do I know this worked?
Log on
to Outlook for a user who is in Exchange Online and perform the following
public folder tests:
- View the hierarchy.
- Check permissions
- Create and delete public folders.
- Post content to and delete content from a public folder.