From c3e1a075936768927c45f37f7fc30e5def6bb2be Mon Sep 17 00:00:00 2001 From: "Bill Long (CPR) (from Dev Box)" Date: Wed, 17 Jun 2026 02:29:09 -0500 Subject: [PATCH] Add PublicFolders README with script overview table Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- PublicFolders/README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 PublicFolders/README.md diff --git a/PublicFolders/README.md b/PublicFolders/README.md new file mode 100644 index 0000000000..8c41164fb1 --- /dev/null +++ b/PublicFolders/README.md @@ -0,0 +1,30 @@ +# Public Folders + +This folder contains scripts for managing, validating, and migrating Exchange public folders. + +The table below is an overview of every script. **Supported on** lists the environments documented for each script (the two we track are **Exchange Online** and **Exchange SE**, the successor to Exchange 2019). **Referenced in Learn docs** shows whether the script is named in public Microsoft Learn migration/coexistence documentation. See each script's own doc page (linked from [the docs site](https://microsoft.github.io/CSS-Exchange/PublicFolders/)) for full usage details. + +| Script | Supported on | Referenced in Learn docs | Category | Purpose | +| --- | --- | --- | --- | --- | +| [SourceSideValidations.ps1](SourceSideValidations/SourceSideValidations.ps1) | Exchange SE | [Migrate to EXO](https://learn.microsoft.com/en-us/exchange/collaboration/public-folders/migrate-to-exchange-online); [Legacy migration](https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/batch-migration-of-legacy-public-folders) | Pre-migration validation | Scans source public folders before migration and reports issues (with fixes) that cause slow or failed migrations. | +| [ValidateMailEnabledPublicFolders.ps1](ValidateMailEnabledPublicFolders.ps1) | Exchange SE | Indirect — auto-downloaded (`aka.ms/validatemepf`) and run by `Sync-MailPublicFolders.ps1` and `Sync-ModernMailPublicFolders.ps1` | Pre-migration validation | Finds and reports inconsistencies with mail-enabled public folders (pre-migration; superseded by SourceSideValidations for 2013+). | +| [Export-ModernPublicFolderStatistics.ps1](Migration/ToExchangeOnline/Export-ModernPublicFolderStatistics.ps1) | Exchange SE | [Migrate to EXO](https://learn.microsoft.com/en-us/exchange/collaboration/public-folders/migrate-to-exchange-online) | Migration (to Exchange Online) | Generates the folder-name-to-size mapping CSV used to plan the migration. | +| [ModernPublicFolderToMailboxMapGenerator.ps1](Migration/ToExchangeOnline/ModernPublicFolderToMailboxMapGenerator.ps1) | Exchange SE | [Migrate to EXO](https://learn.microsoft.com/en-us/exchange/collaboration/public-folders/migrate-to-exchange-online) | Migration (to Exchange Online) | Generates the public-folder-to-target-mailbox mapping CSV from the size data. | +| [SetMailPublicFolderExternalAddress.ps1](Migration/ToExchangeOnline/SetMailPublicFolderExternalAddress.ps1) | Exchange SE | [Migrate to EXO](https://learn.microsoft.com/en-us/exchange/collaboration/public-folders/migrate-to-exchange-online) | Migration (to Exchange Online) | Stamps mail-enabled public folders' `ExternalEmailAddress` with their EXO address for post-migration mail routing. | +| [AddMembersToGroups.ps1](Migration/ToMicrosoft365Groups/AddMembersToGroups.ps1) | Exchange Online, Exchange SE | [Migrate to Groups](https://learn.microsoft.com/en-us/exchange/use-batch-migration-to-migrate-exchange-2013-public-folders-to-microsoft-365-groups-exchange-2013-help) | Migration (to Microsoft 365 Groups) | Adds public folder users as owners/members of the target Microsoft 365 Group based on their permissions. | +| [LockAndSavePublicFolderProperties.ps1](Migration/ToMicrosoft365Groups/LockAndSavePublicFolderProperties.ps1) | Exchange Online, Exchange SE | [Migrate to Groups](https://learn.microsoft.com/en-us/exchange/use-batch-migration-to-migrate-exchange-2013-public-folders-to-microsoft-365-groups-exchange-2013-help) | Migration (to Microsoft 365 Groups) | Locks the migrating public folders read-only and backs up their properties for rollback. | +| [UnlockAndRestorePublicFolderProperties.ps1](Migration/ToMicrosoft365Groups/UnlockAndRestorePublicFolderProperties.ps1) | Exchange Online, Exchange SE | [Migrate to Groups](https://learn.microsoft.com/en-us/exchange/use-batch-migration-to-migrate-exchange-2013-public-folders-to-microsoft-365-groups-exchange-2013-help) | Migration (to Microsoft 365 Groups) | Restores public folder permissions and properties from backup to roll back a Groups migration. | +| [Sync-ModernMailPublicFolders.ps1](MailPublicFolderSync/Sync-ModernMailPublicFolders.ps1) | Exchange Online, Exchange SE | [Migrate to EXO](https://learn.microsoft.com/en-us/exchange/collaboration/public-folders/migrate-to-exchange-online); [Modern hybrid](https://learn.microsoft.com/en-us/exchange/hybrid-deployment/set-up-modern-hybrid-public-folders) | Hybrid coexistence | Syncs mail-enabled public folder objects from on-premises (Exchange 2013+) to Exchange Online. | +| [Sync-MailPublicFolders.ps1](MailPublicFolderSync/Sync-MailPublicFolders.ps1) | Exchange Online | [Legacy migration](https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/batch-migration-of-legacy-public-folders); [Legacy hybrid](https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/set-up-legacy-hybrid-public-folders) | Hybrid coexistence | Syncs mail-enabled public folder objects from legacy on-premises Exchange (2007/2010) to Exchange Online. | +| [Sync-MailPublicFoldersCloudToOnprem.ps1](MailPublicFolderSync/Sync-MailPublicFoldersCloudToOnprem.ps1) | Exchange Online, Exchange SE | [EXO hybrid](https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/set-up-exo-hybrid-public-folders) | Hybrid coexistence | Syncs mail-enabled public folder objects from Exchange Online back to on-premises. | +| [Import-PublicFolderMailboxes.ps1](MailPublicFolderSync/Import-PublicFolderMailboxes.ps1) | Exchange Online, Exchange SE | [EXO hybrid](https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-folders/set-up-exo-hybrid-public-folders) | Hybrid coexistence | Imports Exchange Online public folder mailboxes as on-premises mail-enabled users for hybrid access. | +| [Import-MailPublicFolders.ps1](MailPublicFolderSync/Import-MailPublicFolders.ps1) | Exchange Online, Exchange SE | No (see note 1) | Hybrid coexistence | Creates placeholder mail-enabled public folder objects in the target forest. | +| [Move-PublicFolderBranch.ps1](Move-PublicFolderBranch.ps1) | Exchange SE | [Move a public folder](https://learn.microsoft.com/en-us/exchange/move-a-public-folder-to-a-different-public-folder-mailbox-exchange-2013-help) (general management, not a migration flow) | Management | Moves a public folder branch (a folder and all its subfolders) to a different public folder mailbox. | +| [Export-PublicFolderStatistics.ps1](Export-PublicFolderStatistics.ps1) | Exchange Online, Exchange SE | No | Management / reporting | Resumable, batched export of public folder statistics to CSV; built for large deployments where `Get-PublicFolderStatistics` hits transient failures (e.g., Exchange Online). | +| [ManagePublicFolderPermissions.ps1](ManagePublicFolderPermissions.ps1) | Exchange Online | No | Management (permissions) | Exports or imports public folder client permissions to/from a CSV file. | +| [Update-PublicFolderPermissions.ps1](Update-PublicFolderPermissions.ps1) | Exchange Online | No | Management (permissions) | Bulk-sets or propagates public folder client permissions for multiple users. | +| [ValidateEXOPFDumpster.ps1](ValidateEXOPFDumpster.ps1) | Exchange Online | No | Diagnostics | Diagnoses public folder/item deletion failures in Exchange Online and proposes fixes. | + +## Notes + +1. **Import-MailPublicFolders.ps1** isn't named in any current Learn article. Its doc page links to the *Configure Exchange Online public folders for a hybrid deployment* article, but that article references the similarly named `Import-PublicFolderMailboxes.ps1` instead.