摘要:如何将Exchange Online公用文件夹移动到Microsoft 365 组。
通过称为批量迁移的过程,可以将部分或全部Exchange Online公用文件夹移动到Microsoft 365 组。 组是Microsoft提供的一种新的协作产品/服务,它比公用文件夹具有某些优势。 请参阅将公用文件夹迁移到Microsoft 365 组,大致了解公用文件夹和组之间的差异,以及为什么你的组织可能或可能不会从切换到组中受益的原因。
This article contains the step-by-step procedures for performing the actual batch migration of your Exchange Online public folders.
开始前,有必要了解什么?
Ensure that all of the following conditions are met before you begin preparing your migration.
目前,只有日历和邮件类型的公用文件夹可以迁移到Microsoft 365 组;不支持迁移其他类型的公用文件夹。 此外,目标Microsoft在迁移之前应存在 365 个组。
Microsoft 365 组不支持公用文件夹中提供的权限角色和访问权限。 在Microsoft 365 组中,用户被指定为成员或所有者。
批量迁移过程仅将公用文件夹中的邮件和日历项复制到Microsoft 365 组。 它不会复制其他类型的公用文件夹内容(如规则和权限),因为Microsoft 365 组中不支持此类内容。
Microsoft 365 组附带 50 GB 邮箱。 确保要迁移的公用文件夹数据的总和小于 50 GB。 此外,请为将来的内容添加留出存储空间。 建议迁移总大小不超过 25 GB 的公用文件夹。
此迁移不是“全部或全部”。 你可以选择要迁移的特定公用文件夹,并且仅迁移这些公用文件夹。 如果要迁移的公用文件夹包含子文件夹,则迁移中不会自动包含这些子文件夹。 If you need to migrate them, you need to explicitly include them.
The public folders will not be affected in any manner by this migration. 但是,使用锁定脚本将迁移的公用文件夹设为只读后,用户将被迫使用Microsoft 365 组而不是公用文件夹。
使用单个迁移批处理迁移所有公用文件夹数据。 Exchange 一次只允许创建一个迁移批处理。 如果尝试同时创建多个迁移批处理,则结果将是错误。
Before you begin, we recommend that you read this article in its entirety, as downtime is required for some steps.
Step 1: Get the scripts
批量迁移到Microsoft 365 组需要在迁移的不同点运行多个脚本,如本文所述。 Download the scripts and their supporting files from this location. 下载所有脚本和文件后,将它们保存到同一位置,例如 c:\PFtoGroups\Scripts
。
Before proceeding, verify you have downloaded and saved all of the following scripts and files:
注意
Make sure to save all scripts and files to the same location.
AddMembersToGroups.ps1:根据源公用文件夹中的权限项,将成员和所有者添加到Microsoft 365 个组。
AddMembersToGroups.strings.psd1:脚本使用
AddMembersToGroups.ps1
的支持文件。LockAndSavePublicFolderProperties.ps1:将公用文件夹设置为只读以防止任何修改,并传输与邮件相关的公用文件夹属性 (前提是公用文件夹已启用邮件) 目标组,这将将电子邮件从公用文件夹重新路由到目标组。 This script also backs up the permission entries and the mail properties before modifying them.
LockAndSavePublicFolderProperties.strings.psd1:脚本使用
LockAndSavePublicFolderProperties.ps1
的支持文件。UnlockAndRestorePublicFolderProperties.ps1:使用 创建的
LockandSavePublicFolderProperties.ps1
备份文件还原公用文件夹的访问权限和邮件属性。UnlockAndRestorePublicFolderProperties.strings.psd1:脚本使用
UnlockAndRestorePublicFolderProperties.ps1
的支持文件。WriteLog.ps1:允许
AddMembersToGroups.ps1
、LockAndSavePublicFolderProperties.ps1
和UnlockAndRestorePublicFolderProperties.ps1
脚本写入日志。RetryScriptBlock.ps1:允许
AddMembersToGroups
、LockAndSavePublicFolderProperties
和UnlockAndRestorePublicFolderProperties
脚本在遇到暂时性错误时重试某些作。
有关 、 LockAndSavePublicFolderProperties.ps1
和 UnlockAndRestorePublicFolderProperties.ps1
脚本及其在环境中运行的任务的详细信息AddMembersToGroups.ps1
,请参阅本文后面的迁移脚本部分。
步骤 2:准备迁移
The following steps are necessary to prepare your organization for the migration:
编译要迁移到Microsoft 365 组的公用文件夹列表 (邮件和日历类型) 。
Have a list of corresponding target groups for each public folder being migrated. You can either create a new group in Office 365 for each public folder or use an existing group. 如果要创建新组,请参阅了解Microsoft 365 组以了解组必须具有的设置。 如果要迁移的公用文件夹的默认权限设置为“创作”或更高权限,则应使用“公共隐私”设置在 Office 365 中创建相应的组。 但是,用户若要在 Outlook 中的 “组” 节点下看到公共组,他们仍必须加入该组。
重命名名称中包含反斜杠 ( \) 的任何公用文件夹。 Otherwise, those public folders may not get migrated correctly.
必须为组织启用迁移功能名称 PAW。 若要验证 PAW 是否已启用,请在 PowerShell Exchange Online 运行以下命令:
Get-MigrationConfig
如果 “功能 ”下的输出列出了 PAW,则已启用该功能,你可以继续。
如果有任何现有用户或公用文件夹迁移批处理处于任何状态 (包括 已完成) ,则不会启用 PAW 。 完成任何删除任何现有迁移批处理,直到 的输出
Get-MigrationBatch
中未返回任何记录。 删除所有现有迁移批处理后,应会自动启用 PAW。 更改可能不会立即反映在中Get-MigrationConfig
。Once this step is completed, you can continue creating new batches of user migrations.
Step 3: Create the .csv file
创建 .csv 文件,该文件为其中一个迁移脚本提供输入。
The .csv file needs to contain the following columns:
FolderPath。 Path of the public folder to be migrated.
TargetGroupMailbox。 目标Microsoft 365 组的 SMTP 地址。 You can run the following command to see the primary SMTP address.
Get-UnifiedGroup <alias of the group> | Format-Table PrimarySmtpAddress
An example .csv:
"FolderPath","TargetGroupMailbox"
"\Sales","sales@contoso.onmicrosoft.com"
"\Sales\EMEA","emeasales@contoso.onmicrosoft.com"
可以将邮件文件夹和日历文件夹合并到单个Microsoft 365 组中。 However, any other scenario of multiple public folders merging into one group isn't supported within a single migration batch. 如果需要将多个公用文件夹映射到同一个 Microsoft 365 组,请依次运行单独的迁移批处理。 You can have up to 500 entries in each migration batch.
One public folder should be migrated to only one group in one migration batch.
Step 4: Start the migration request
在此步骤中,您从您的 Exchange 环境,收集信息,然后使用该信息中Exchange Online PowerShell创建迁移批。 在此之后,在开始迁移。
在 Exchange Online PowerShell 中运行以下命令,创建新的公用文件夹到 Microsoft 365 组迁移批处理。
New-MigrationBatch -Name PublicFolderToGroupMigration -CSVData ([System.IO.File]::ReadAllBytes('<path to .csv file>')) -PublicFolderToUnifiedGroup [-AutoStart]
在此命令:
- CSVData 是上面在 步骤 3:创建 .csv 文件中创建的 .csv 文件。 Be sure to provide the full path to this file. If the file was moved for any reason, be sure to verify and use the new location.
- AutoStart 是一个可选开关,可在创建迁移批处理后立即启动迁移批处理。
- PublicFolderToUnifiedGroup 指示这是要Microsoft 365 组迁移批处理的公用文件夹。
如果未在第一个命令中使用 AutoStart 开关,请在 PowerShell Exchange Online 运行以下命令,开始迁移:
Start-MigrationBatch PublicFolderToGroupMigration
虽然批量迁移需要使用 Exchange Online PowerShell 中的 cmdlet 创建New-MigrationBatch
,但可以在 Exchange 管理中心查看和管理迁移进度。 通过运行 Get-MigrationBatch和Get-MigrationUser的 cmdlet,您还可以查看显示迁移的进度。 cmdlet New-MigrationBatch
为每个Microsoft 365 组邮箱启动迁移用户,你可以使用邮箱迁移页查看这些请求的状态。
To view the mailbox migration page:
在 Exchange Online,打开Exchange 管理中心。
Navigate to Recipients, and then select Migration.
Select the migration request that was just created and then, on the Details pane, select View Details.
批处理状态为 “已完成”时,可以转到 步骤 5:将成员添加到从公用文件夹Microsoft 365 个组。
步骤 5:将成员添加到从公用文件夹Microsoft 365 个组
可以根据需要手动将成员添加到目标Microsoft 365 组。 但是,如果要根据公用文件夹中的权限条目将成员添加到组,则需要通过运行以下命令中所示的脚本 AddMembersToGroups.ps1
来执行此作。 若要了解哪些公用文件夹权限有资格添加为 Microsoft 365 组的成员,请参阅本文后面的 迁移脚本 。
在下面的命令:
MappingCsv 是上面在 步骤 3:创建 .csv 文件中创建的 .csv 文件。 Be sure to provide the full path to this file. If the file was moved for any reason, be sure to verify and use the new location.
BackupDir is the directory where the migration log files will be stored.
ArePublicFoldersOnPremises is a parameter to indicate whether public folders are located on-premises or in Exchange Online.
.\AddMembersToGroups.ps1 -MappingCsv <path to .csv file> -BackupDir <path to backup directory> -ArePublicFoldersOnPremises $false
将用户添加到 Microsoft 365 组后,他们可以开始使用它。
步骤 6: 锁定公共文件夹 (公用文件夹所需的停机) 时间
当公用文件夹中的大多数数据已迁移到Microsoft 365 组时,可以运行脚本LockAndSavePublicFolderProperties.ps1
以使公用文件夹成为只读的。 此步骤可确保在迁移完成之前,任何新的数据添加到公用文件夹。
注意
如果在要迁移的公用文件夹之间 (启用邮件的公用文件夹) MEPF,则此步骤会将 MEPF 的某些属性(如 SMTP 地址)复制到相应的Microsoft 365 组,然后邮件禁用公用文件夹。 因为迁移 MEPFs 将会禁用邮件功能之后执行此脚本,您将开始看到电子邮件发送至 MEPFs,而是接收到相应的组中。 有关详细信息,请参阅本文后面的 迁移脚本 部分。
在下面的命令:
MappingCsv 是上面在 步骤 3:创建 .csv 文件中创建的 .csv 文件。 Be sure to provide the full path to this file. If the file was moved for any reason, be sure to verify and use the new location.
BackupDir 是存储权限条目、MEPF 属性和迁移日志文件的备份文件的目录。 如果需要回滚到公用文件夹,此备份非常有用。
ArePublicFoldersOnPremises is a parameter to indicate whether public folders are located on-premises or in Exchange Online.
.\LockAndSavePublicFolderProperties.ps1 -MappingCsv <path to .csv file> -BackupDir <path to backup directory> -ArePublicFoldersOnPremises $false
步骤 7:完成公用文件夹以Microsoft 365 组迁移
只读的做出自己的公用文件夹后,您需要执行再次迁移。 对于数据的最终增量副本,此步骤是必需的。 在再次运行迁移之前,必须删除现有批处理,可以通过运行以下命令执行此作:
Remove-MigrationBatch <name of migration batch>
运行以下命令,创建具有相同 .csv 文件的新批:
New-MigrationBatch -Name PublicFolderToGroupMigration -CSVData ([System.IO.File]::ReadAllBytes('<path to .csv file>')) -PublicFolderToUnifiedGroup [-NotificationEmails <email addresses for migration notifications>] [-AutoStart]
在此命令:
- CSVData 是上面在 步骤 3:创建 .csv 文件中创建的 .csv 文件。 Be sure to provide the full path to this file. If the file was moved for any reason, be sure to verify and use the new location.
- NotificationEmails is an optional parameter that can be used to set email addresses that will receive notifications about the status and progress of the migration.
- AutoStart 是一个可选开关,可在创建迁移批处理后立即启动迁移批处理。
如果在上一个命令中未使用 AutoStart 开关,请在 PowerShell Exchange Online 运行以下命令,开始迁移:
Start-MigrationBatch PublicFolderToGroupMigration
完成此步骤 (批状态为 “已完成) ”后,请验证所有数据是否已复制到Microsoft 365 组。 此时,如果你对组体验感到满意,则可以开始从Exchange Online环境中删除已迁移的公用文件夹。
重要
虽然支持回滚迁移并返回到公用文件夹的过程,但删除源公用文件夹后,这是不可能的。 有关详细信息,请参阅如何实现从 Microsoft 365 组 回滚到公用文件夹?
已知问题
在典型的公用文件夹Microsoft 365 组迁移期间,可能会出现以下问题:
- 将 SMTP 地址从已启用邮件的公用文件夹传输到 Microsoft 365 组的脚本只会将地址添加为 Exchange Online 中的辅助电子邮件地址。 如果已Exchange Online Protection (EOP) 或使用集中邮件流,则迁移后) 向组发送电子邮件 (辅助电子邮件地址时出现问题。
- If the .csv mapping file has an entry with invalid public folder path, the migration batch displays as Completed without throwing an error, and no further data is copied.
迁移的脚本
为了便于参考,本部分提供深入说明迁移脚本以及它们在您的 Exchange 环境中执行的任务中的三个。 您可以下载的所有脚本和支持文件从此位置。
AddMembersToGroups.ps1
此脚本将读取要迁移的公用文件夹的权限,然后将成员和所有者添加到Microsoft 365 个组,如下所示:
具有以下权限角色的用户将作为成员添加到 Microsoft 365 组。 Permission roles: Owner, PublishingEditor, Editor, PublishingAuthor, Author
除此之外,具有以下最低访问权限的用户还将作为成员添加到 Microsoft 365 组。 Access rights: ReadItems, CreateItems, FolderVisible, EditOwnedItems, DeleteOwnedItems
用户具有访问权限的"所有者"将向组添加为所有者,并与其他有资格的访问权限的用户将被添加为成员。
无法将安全组作为成员添加到 365 个组Microsoft。 因此,将对其进行扩展,然后根据安全组的访问权限将单个用户作为成员或所有者添加到组。
如果安全组中对公用文件夹具有访问权限的用户本身对同一公用文件夹具有显式权限,则会优先获得显式权限。 例如,假设名为“SG1”的安全组具有用户 1 和用户 2 的成员。 为公用文件夹"PF1"权限条目如下所示:
在 PF1 SG1: 作者
用户 1:PF1 中的所有者
在这种情况下,用户 1 将作为所有者添加到 Microsoft 365 组。
迁移公用文件夹的默认权限是 '作者' 或更高,该脚本将建议设置的相应组的隐私设置为公共。
即使在锁定公用文件夹后,也可以运行此脚本,并将参数 ArePublicFoldersLocked
设置为 $true
。 在这种情况下,脚本将从锁定期间创建的备份文件中读取权限。
LockAndSavePublicFolderProperties.ps1
此脚本使要迁移的公用文件夹是只读的。 迁移已启用邮件的公用文件夹时,将首先禁用邮件,并且其 SMTP 地址将添加到相应的Microsoft 365 组。 然后的权限项将被修改以使其成为只读的。 在对公用文件夹执行任何修改之前,将复制已启用邮件的公用文件夹的邮件属性的备份以及所有公用文件夹的权限条目。
如果有多个迁移批,应与每个映射.csv 文件使用单独的备份目录。
将存储以下邮件属性,以及相应的已启用邮件的公用文件夹和Microsoft 365 个组:
- PrimarySMTPAddress
- EmailAddresses
- ExternalEmailAddress
- EmailAddressPolicyEnabled
- GrantSendOnBehalfTo
- SendAs 受信者列表
上述邮件属性将存储在 .csv 文件中,该文件可在回滚过程中使用, (如果要返回到使用公用文件夹,请参阅如何实现从Microsoft 365 组回滚到公用文件夹?以获取详细信息) 。 启用邮件的公用文件夹属性的快照也将存储在名为 PfMailProperties.csv 的文件中。 回滚过程不需要此文件,但仍可用于参考。
在锁定过程中,以下邮件属性将迁移到目标组:
- PrimarySMTPAddress
- EmailAddresses
- SendAs 受信者列表
- GrantSendOnBehalfTo
该脚本可确保将迁移已启用邮件的公用文件夹的 PrimarySMTPAddress 和 EmailAddresses 添加为相应Microsoft 365 组的辅助 SMTP 地址。 此外,SendAs 和 SendOnBehalfTo 权限的已启用邮件的公用文件夹的用户将获得等效权限对应的目标组中。
Access rights allowed
Only the following access rights will be allowed for users to ensure that the public folders are made read-only for all users. These are stored in ListOfAccessRightsAllowed.
- ReadItems
- CreateSubfolders
- FolderContact
- FolderVisible
权限项将被修改,如下所示:
锁定之前 锁定后 无 无 AvailabilityOnly AvailabilityOnly LimitedDetails LimitedDetails 参与者 FolderVisible Reviewer ReadItems、FolderVisible NonEditingAuthor ReadItems、FolderVisible 作者 ReadItems、FolderVisible 编辑器 ReadItems、FolderVisible 发行作者 ReadItems、CreateSubfolders、FolderVisible 发行编辑 ReadItems、CreateSubfolders、FolderVisible 所有者 ReadItems、CreateSubfolders、FolderContact、FolderVisible 没有读取权限的用户的访问权限将保持不变,并且他们将继续被阻止读取权限。
对于具有自定义角色的用户,将删除 ListOfAccessRightsAllowed 中未提供的所有访问权限。 如果用户在筛选后没有来自允许列表的访问权限,则其访问权限将设置为“无”。
在禁用邮件的文件夹并将其 SMTP 地址添加到Microsoft 365 组期间,向已启用邮件的公用文件夹发送电子邮件可能会中断。
UnlockAndRestorePublicFolderProperties.ps1
此脚本将根据在公用文件夹锁定期间创建的备份文件,将权限重新分配给公用文件夹。 此脚本还会在从其各自的Microsoft 365 组中删除文件夹的 SMTP 地址后,对已禁用邮件的公用文件夹启用邮件。 在此过程中可能有轻微的停机时间。
如何实现从 Microsoft 365 组 回滚到公用文件夹?
如果在使用 Microsoft 365 组 后改变主意并想要恢复使用公用文件夹,下面列出的命令会将环境还原到迁移前的状态。 前滚回可执行只要备份文件存在,并且,只要不删除公用文件夹迁移后。
运行以下命令。 在此命令:
BackupDir is the directory where the backup files for permission entries, MEPF properties, and migration log files will be stored. 请确保使用步骤 6:锁定公用文件夹中指定的相同位置 ,以 () 所需的公用文件夹停机时间 。
ArePublicFoldersOnPremises is a parameter to indicate whether public folders are located on-premises or in Exchange Online.
.\UnlockAndRestorePublicFolderProperties.ps1 -BackupDir <path to backup directory> -ArePublicFoldersOnPremises $false
添加到 Microsoft 365 组的任何项目或在组中执行的任何编辑作不会复制回公用文件夹。 因此将会有数据丢失,假定为新数据添加了一组公用文件夹时。
还要注意不能恢复公用文件夹,这就意味着所有的公用文件夹迁移应恢复的一个子集。
在回滚过程中,不会删除相应的Microsoft 365 组。 您需要清理或手动删除这些组。