Recently a client of mine wanted to consolidate their Public Folder infrastructure, or at least reorganize the existing 2007 version before upgrading to Exchange 2013 with the possibility of Office 365. Cross forest migrations (Exchange 2013 or Office 365) can be tedious to plan, execute and support. Mailbox moves are relatively easy with PowerShell scripts (Prepare-MoveRequest) and cmdlets (New-MoveRequest). However, what is often overlooked is moving Public Folders.
We were tasked with importing Public Folders from one company to another from a different Forest entirely. There are third-party tools to do this, but there was no budget to perform the task. After a bit of research I found that Outlook could connect to both environments and copy the data across….. as long as Outlook was 2010+. We can make these kinds of transfers with two different forest models:
Exchange 2007 to Office 365

Exchange 2007 to Exchange 2013 or 2010

Once mailboxes were moved from 2007 in Forest 2 to Exchange 2013 in Forest 1, a copy of the Public Folders would be made from Forest 2 (Exchange 2007) to Forest 1 (Exchange 2007). The data would be placed in the company specific folder. See my previous article on how to create isolated Public Folders for multi-company accessed Public Folders. If the company were going to Office 365, then we could copy the data from an Exchange 2007 or 2013 to Office 365 target.
Outlook would have two mail accounts on the same profile:

The would reveal access to both Public Folder trees:

The setup would look something like this:

Outlook basically becomes a conduit for Public Folder data between Forests.
Checklist – post data copy
- Permissions – verify permissions on each target folder match the source folder
- Functionality – Verify mail enabled folders work. Verify items can be posted, read and unread.
- Compatibility – Verify access works for various Outlook versions as well as Exchange versions (i.e. Exchange 2013 mailboxes).
The first item on the list is the most crucial of the three as it will be the most visible to the end user if they are unable to access Public Folders. One way to get permissions for a set of Public Folders is to run a one liner like this:
get-publicfolder -recurse | Get-PublicFolderClientPermission
The results look something like this: (notice there are multiple companies sharing the same tree)
Next step is to run the same command against the copied folders in the old organization and match the permissions up to each folder to make sure they are correct.
How to Add the Second Public Folder Tree
Outlook Configuration
Outlook 2010 + can do this because we can add multiple connections to multiple Exchange environments. To do so, we need to have an account that has access to mail systems and more specifically the Public Folder trees from both Exchange 2007 Orgs. To add the second Public Folder connection, click on ‘File’ in Outlook, then Account Settings and finally Add/ Remove accounts:
Then manually enter information for the account that has access to Public Folders in the other domain / forest:
Wait tile the profile has completed updating:
Close out of Outlook and reopen Outlook. A login prompt for the other Public Folders will appear:
If you have not imported any certificates from the other environment, there might be a few certificate pop-ups:
Right click on the folder to be copied and select ‘Copy Folder’:
Select the destination for the folder:
Wait for the copy process to complete and the folder is now on the second Public Folder instance:
While this method will work, there are downsides:
- NO data synchronization – manual process
- Should be done at the end of a migration
- Outlook 2010 has a 1500 item limit – might affect larger PF implementations
- Permissions may need to be reset
- Manual. Tedious. Needs to be watched.
Copy Method 2
Outlook rules could potentially be used for migrating items between Public Folder trees as well. The rule would have to use criteria that would be common to all items in the folder (email domain is one option). So the rule would look something like this:
For this to work, the Outlook client should open a mailbox up in the source forest as the primary mailbox and the target forest as the secondary mailbox. The reason that it should be done this way is that the rule allows for the ‘Sent To’ to be only a local folder while the ‘move it to’ step allows for any location (source or target forest Public Folders). Once the rule is created, apply the rule to the folder.
NOTES FOR OFFICE 365
I had written in a previous article – HERE – that Microsoft has no support for moving Public Folders from 2013 to Office 365. The method described above will work if you want to avoid using Third-Party tools. The solution is great for smaller environments. It may not scale well for larger moved… and I am not telling you to do this. The engineer that moves items this way needs to understand the risks before proceeding.