The key for a successful migration (of any type) is to ensure that source data is in a healthy condition. Public folder migrations are no different, especially if you have been using public folders for years. Orphaned ACLs, mis-matched Mail Enabled Public Folder objects (MEPF’s), or corrupted dumpster folders can cause public folder migrations to slow down considerably, if not fail altogether.
We are happy to provide admins with a Source Validation script (clicking will start download of the script) which can scan and report on issues found with public folder deployments. The script can be used to scan legacy public folder deployments hosted on Exchange Server 2010 or modern public folder deployments on Exchange Server 2013, Exchange Server 2016 or Exchange Server 2019. It is recommended to use this script to scan public folder deployments before the start of a migration and fix any issues reported before proceeding with migration.
Currently, the script checks and reports:
*These tests are valid for public folder deployments on Exchange 2013 and above.
Download the script from here, copy it to on-premises servers and execute from Exchange Management Shell. The script reads public folder hierarchy and stores the information into CSV files on the disk. Then, various checks are performed using the information stored in the CSV files. The results, along with actions to be performed, are presented in a log file named “SourceSideValidations.[yyyyMMdd_HHmm].log”
Important parameters:
Parameter |
Required |
Description |
verifyMEPF* |
Optional |
Specifies if MEPF integrity check needs to performed. By default, set to true. The option works for Exchange Server 2013 and above. |
checkLimits |
Optional |
Specifies if Limits need to be checked for public folder. By default, set to true. |
verifyDumpsterMapping* |
Optional |
Specifies if public folder mapping with dumpsters needs to be verified. By default, set to true. The option works for Exchange Server 2013 and above. |
chekPermissions |
Optional |
Specifies if permissions need to be checked on public folders. By default, set to true. |
startAfresh |
Optional |
Specifies if the script should read from files on the disk or read from PF structure again. Default value is true. The script will read the PF structure and create log files on the disk. Specify startAfresh:$false in case the script execution was interrupted for any reason and needs to be resumed from the point where script was interrupted. |
The following example shows how to perform only dumpster mapping check:
.\SourceSideValidations.ps1 -verifyMEPF $false -verifyDumpsterMapping $true -checkLimits $false -checkPermissions $false
The following example, without providing any parameters performs, all the checks (i.e. -MEPF, Limits, DumpsterMapping and Orphaned ACL check):
.\SourceSideValidations.ps1
The following example shows how to have script read public folder information from the existing files. This is useful in scenario if the script execution was interrupted and needs to be resumes from the time of interruption:
.\SourceSideValidations.ps1 -startFresh:$false
Additionally, here are some important points to be noted:
SourceSideValidations.<timestamp>.log
SourceSideValidations.20190923_08.log
Please leave a comment to let us know your feedback about the script. Happy public folder migrations!
Public Folder Team
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.