Public Folder Migration to Exchange Online (500k Folders) Part 2 — Preparing for Migration (2/2)
Quick Jump Guide
Part 1 — Preparing for Migration (1/2)
Part 2 — Preparing for Migration (2/2)
Part 3 — Starting the Migration Request
Part 4 — Monitoring and Fixing the Sync (1/3)
Part 5 — Monitoring and Fixing the Sync (2/3)
Part 6 — Monitoring and Fixing the Sync (3/3)
Part 7 — Completing the Batch
Part 8 — Testing & Unlocking Public Folders
Part 9 — Post-Migration Issues (Hierarchy Update)
Part 10 — Post-Migration Issues (Access Denied Deleting)
Part 11 — Post-Migration Issues (Add/Remove Permissions)
Part 12 — Decommissioning on-premises Public Folders
Part 13 — Troubleshooting Hierarchy Issues
In Part 1 we looked at the pre-migration clean-up that is ideally required in order to make your migration to Exchange Online Public Folders a success. We covered;
- What to do about Replicas
- The requirement to fix all invalid characters
- The clean-up of permissions
- Fixing all mail-enabled Public Folders
We will now look at how to size your mapping file if you have an archiving system. In this case we used Enterprise Vault for this.
Step 4 — Enterprise Vault
As I said in Part 1 it is so important to understand the true size of each Public Folder. You can run the below SQL queries to collect the true sizes of your EV data folder by folder.
Step 5 — Microsoft’s Migration Discovery Script
Now you have the true sizes on your EV data, folder by folder, you can now collect the data that is stored within Exchange.
1. Using the migration scripts on the TechNet article, run PowerShell as an administrator on one of the Exchange servers and run the below command.
2. Review the data in the ExportPFStat.csv file. The data here is has formatted in the UNICODE format therefore you have alter this before you can add your EV data to it.
3. In Excel, replace all (,”) with a (¬) — basically something you will not find in your folder names.
4. From here, you can use the “Text to Columns” option separate it out using the (¬) you replaced earlier.
5. In the EV export, you will have to prefix all columns with the “\IPM_SUBTREE” text so they match the ExportPFStat.csv discovery.
6. Use a vloookup to match the folder names in the EV export to the ExportPFStat export.
7. For the folders that match, add the EV data to the Exchange data so you now have one FolderSize column which is now the true size of your data.
IMPORTANT: Under Step 6 below we configure the maximum size of each Public Folder mailbox. In this guide, I’ve set it to a 60GB quota. You will need to ensure that no folder is larger then 60GB (or whatever quota you decide on). I had to split out a number of folders, in the end I chose to do it by year (2008, 2009, 2010 etc) until we had the sizes under 60GB.
8. Now you have the correct folder sizes in your export it is “very important” to save this in Excel as a UNICODE .csv file. If you do not do this and you have special characters in folder names, for example if you have any Scandinavian users who create folder names with letters like these (æ, ø, æ, å — and many more) etc in them, then you will break the formatting of these folders.
9. Now you have saved your ExportPFStats.csv file as a UNICODE .csv file, we need to put this through PowerShell… why you ask?
Simply because if you try and upload this to Microsoft it will fail to read it…This command will export it in a way where you can upload it to Microsoft.
Step 6 — Microsoft’s Mailbox Generator Script
The next step in the process is to run the mailbox generator script. This will examine the discovery export you ran above and split the data in mailboxes no larger then the quota you specify. With mailboxes now being 100GB, we went for average of 60GB per mailbox.
If you have any single folders that exceed 60GB, it’ll fail and you’ll have to redo your ExportPFStats.csv script to match your quota (or increase your quota).
IMPORTANT: In the TechNet article it does mention that the mapping file shouldn’t exceed 1000 lines. Ours came out at 3963 lines and it does work now (it didn’t before we had to get Microsoft to rewrite the code)
Step 7 — Create the Public Folder Mailboxes
This step is very straight forward, however if I can give one piece of advice on the parameter -EstimatedNumberOfConcurrentUsers… go big!
We overestimated how many users use Public Folders and we thought that was enough. Once you cutover you very quickly realise that depending on the speed of Microsoft’s servers (and you’ll learn very quickly during this process just how good/bad these are), if you want quick hierarchy performance, spread them over lots of mailboxes. I’ll explain more later in this guide as you see why you want all the donkey work done early…
Just so you can see I’m not talking rubbish, we currently have 643 Public Folder mailboxes and 484,702 folders in Exchange Online Public Folders…