管理 Exchange Server 中的本地邮箱移动
在 Exchange Server 中,用户的主邮箱和存档邮箱可以驻留在不同的数据库上。 移动请求是将邮箱从一个邮箱数据库移动到另一个邮箱数据库的过程。 本地移动请求是在单个 Active Directory 林 (内发生的邮箱移动,与 Active Directory 林) 之间发生的远程移动请求相反。 将本主题中的过程用于本地主邮箱和/或存档邮箱的本地移动请求。 使用移动请求功能,可以将主邮箱和关联的存档移动到同一数据库或单独的数据库。
以下组件处理移动邮箱的移动请求:
- Microsoft Exchange 邮箱复制服务 (MRS)
- 邮箱复制服务代理 (MRS 代理)
本主题中的过程将帮助你移动本地邮箱。 可以使用 Exchange 命令行管理程序和 Exchange 管理中心 (EAC) 来移动本地组织中的邮箱。
有关邮箱移动和 MRS 代理的详细信息,请参阅 Exchange Server 中的邮箱移动。
开始前,有必要了解什么?
估计完成每个过程的时间:20 分钟
有关访问和使用 EAC 的详细信息,请参阅 Exchange Server 中的 Exchange 管理中心。 若要了解如何在本地 Exchange 组织中打开 Exchange 命令行管理程序,请参阅 Open the Exchange Management Shell。
您必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 收件人权限中的"邮箱移动和迁移权限"条目。
若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键。
提示
是否有任何疑问? 请在 Exchange 论坛中寻求帮助。 请访问以下论坛:Exchange Server、Exchange Online 或 Exchange Online Protection。
创建本地移动请求
可以为以下项创建本地移动请求:
单个邮箱。
多个邮箱 (也称为 批量移动请求) 。
在逗号分隔值 (CSV) 文件中指定的多个邮箱 (也称为 迁移批处理) 。
在 EAC (为 CSV 文件) 中指定的单个邮箱、多个邮箱或多个邮箱创建本地移动请求时,该请求对 Exchange 命令行管理程序中的 Get-MigrationBatch cmdlet 可见。 (自动或手动) 完成请求后, Get-MoveRequest cmdlet 会显示每个邮箱的结果。
若要在 Exchange 命令行管理程序中创建新的本地移动请求,只需将 New-MigrationBatch cmdlet 用于迁移批处理, (在 CSV 文件中指定邮箱) 。 若要创建不使用 CSV 文件 (单个邮箱或批量移动请求) 的本地移动请求,需要使用 New-MoveRequest cmdlet,并且这些请求对 Get-MigrationBatch 批处理 cmdlet (或相关的 *-MigrationBatch* cmdlet) 不可见。
使用 EAC 创建本地移动请求
在 EAC 中,转到“收件人>迁移>”,单击“然后选择“移动到其他数据库”。
此时会打开 “新建本地邮箱移动 ”向导。 在 “选择用户” 页上,配置以下选项之一:
选择要移动的用户:选择一个或多个用户:
注意:即使只对移动用户的存档邮箱感兴趣,也可以选择用户的主邮箱。
单击“添加 在出现的 “选择邮箱 ”对话框中,选择一个或多个邮箱。 完成后,单击“确定”。
若要从列表中删除邮箱,请选择邮箱,然后单击“ 删除。
使用 CSV 文件指定用户:单击“ 浏览 ”,转到逗号分隔值的位置, (CSV) 文件指定要移动的邮箱。 有关本地移动请求的 CSV 文件要求的详细信息,请参阅 邮箱迁移的 CSV 文件。
允许 CSV 文件中的未知列:
如果未选中此复选框,移动将忽略 (静默跳过 CSV 文件中) 未知列 (包括) 列标题拼写错误的可选列。 所有未知列都被视为不使用的额外列。
如果选中此复选框,如果 CSV 文件中有任何未知列,迁移将失败。 此设置可防止在必需和可选列标题中出现拼写错误,但 CSV 文件不能包含任何不相关的列。
完成后,单击“下一步”。
在 “移动配置 ”页上,配置以下设置:
新迁移批名称:输入邮箱移动操作的描述性名称。
存档:选择以下选项之一:
移动主邮箱和存档邮箱(如果存在)
仅移动主邮箱,不移动存档邮箱
仅移动存档邮箱,不移动主邮箱
目标数据库:此设置影响主邮箱的移动。
若要指定主邮箱的数据库,请单击“ 浏览”。 在出现的 “选择邮箱数据库 ”对话框中,选择数据库。
如果未指定数据库,Exchange 中的自动分发逻辑将随机选择 Active Directory 站点中的数据库。
目标存档数据库:此设置会影响存档邮箱的移动。
若要指定存档邮箱的数据库,请单击“ 浏览”。 在出现的 “选择邮箱数据库 ”对话框中,选择数据库。
如果未指定数据库,存档邮箱将移动到与主邮箱相同的位置。
错误项目限制:指定在请求失败之前邮箱中允许的最大损坏项目数。 EAC 中的默认值为 10。 请勿在此处指定大于 50 的值。 如果要将限制设置为 51 或更高,请使用 Exchange 命令行管理程序中的 BadItemLimit 参数和 AcceptLargeDataLoss 开关。
完成后,单击“下一步”。
在 “启动批处理 ”页上,配置以下设置:
批处理完成后,将向以下收件人发送一份报告:默认值是用于移动邮箱的帐户。 单击“ 浏览 ”添加或删除收件人。 完成后,单击“确定”。
请选择开始批处理的首选选项:选择以下选项之一:
稍后手动启动批处理
自动启动批处理:这是默认值。
请选择首选选项以完成批处理:选择以下选项之一:
手动完成批处理
自动完成迁移批处理:这是默认值。
完成后,单击“ 新建”。
使用 Exchange 命令行管理程序为单个或多个邮箱创建本地移动请求
单个邮箱的本地移动请求使用 New-MailboxMove cmdlet。 但是,对于未在 CSV 文件中指定邮箱的多个邮箱的本地移动请求也使用 New-MailboxMove cmdlet。 对不使用 CSV 文件的多个邮箱的本地 移动请求也称为批量移动请求。
若要为单个邮箱创建本地移动请求,请使用以下语法:
New-MoveRequest "<DescriptiveName>"] -Identity <MailboxIdentity> [<-ArchiveOnly | -PrimaryOnly>] [-TargetDatabase <DatabaseIdentity>] [-ArchiveTargetDatabase<DatabaseIdentity>] [-Priority <PriorityValue>] [-BadItemLimit <Value>] [-AcceptLargeDataLoss]
此示例使用以下设置创建新的本地移动请求:
邮箱:主邮箱和存档邮箱 (如果存在) Angela Gruber () agruber@contoso.com 。 如果只想移动主邮箱,请使用 PrimaryOnly 开关。 如果只想移动存档邮箱,请使用 ArchiveOnly 开关。
主邮箱的目标数据库:MBX DB02。 如果不使用 TargetDatabase 参数,Exchange 中的自动分发逻辑将随机选择 Active Directory 站点中的数据库。
存档邮箱的目标数据库:MBX DB03。 如果不使用 ArchiveTargetDatabase 参数或 PrimaryOnly 开关,存档邮箱数据库将移动到主邮箱所在的同一数据库。
如果在不使用 ArchiveTargetDatabase 参数的情况下使用 ArchiveOnly 开关,Exchange 中的自动分发逻辑将随机选择 Active Directory 站点中的数据库。
优先级:
Normal
,因为我们未使用 Priority 参数。错误的项限制:10 (Exchange 命令行管理程序中的默认值为 0) 。 由于值小于 51,因此无需使用
AcceptLargeDataLoss
开关。
New-MoveRequest -Identity agruber@contoso.com -TargetDatabase "MBX 02" -ArchiveTargetDatabase "MBX 03" -BadItemLimit 10
此示例使用类似的设置,但仅移动 Angela 的主邮箱。
New-MoveRequest -Identity agruber@contoso.com -PrimaryOnly -TargetDatabase "MBX 02" -BadItemLimit 10
此示例使用类似的设置,但仅移动 Angela 的存档邮箱。
New-MoveRequest -Identity agruber@contoso.com -ArchiveOnly -ArchiveTargetDatabase "MBX 03" -BadItemLimit 10
有关语法和参数的详细信息,请参阅 New-MoveRequest。
批处理移动请求使用与单个邮箱的移动请求几乎相同的语法。 主要区别如下:
不使用 Identity 参数指定邮箱。 而是使用 Get-Mailbox 或 Get-User cmdlet 生成要移动的邮箱列表,并将结果管道传递给 New-MoveRequest cmdlet。
使用 BatchName 参数命名批处理移动。
此示例使用以下设置创建批处理移动请求:
要移动的邮箱:名为 MBX DB01 的数据库上的所有邮箱。
批名称:MBX DB01 到 MBX DB02。
目标数据库:MBX DB02。 如果未使用 TargetDatabase 参数,Exchange 中的自动分发逻辑将在 Active Directory 站点中随机选择数据库。
存档邮箱的目标数据库:MBX DB02。 由于未使用 ArchiveTargetDatabase 参数或 PrimaryOnly 开关,因此存档邮箱数据库将移动到与主邮箱相同的数据库。
如果在不使用 ArchiveTargetDatabase 参数的情况下使用 ArchiveOnly 开关,则 Exchange 中的自动分发逻辑将随机选择 Active Directory 站点中的数据库。
优先级:
High
错误的项限制:51 (Exchange 命令行管理程序中的默认值为 0) ,因此我们还需要使用 AcceptLargeDataLoss 开关。
Get-Mailbox -Database "MBX DB01" | New-MoveRequest -BatchName "MBX DB01 to MBX DB02" -TargetDatabase "MBX DB02" -Priority High -BadItemLimit 51 -AcceptLargeDataLoss
有关语法和参数的详细信息,请参阅 New-MoveRequest。
使用 Exchange 命令行管理程序从 CSV 文件创建本地移动请求
CSV 文件中指定的邮箱的本地移动请求称为 迁移批处理,并使用 New-MigrationBatch cmdlet。
有关本地移动请求的 CSV 文件要求的详细信息,请参阅 邮箱迁移的 CSV 文件。
注意
将迁移 CSV 文件中指定的所有邮箱,即使它们不在 RBAC 范围 (例如,授予管理员迁移邮箱权限的 OU) 。
若要创建迁移批处理,请使用以下语法:
New-MigrationBatch -Local [-AutoStart] [-AutoComplete] -Name "<MigrationBatchName>" -CSVData ([System.IO.File]::ReadAllBytes('<PathAndFileName>')) [<-ArchiveOnly | -PrimaryOnly>] [-TargetDatabases "<MailboxDatabase1>","<MailboxDatabase1>"... [-TargetArchiveDatabases "<MailboxDatabase1>","<MailboxDatabase1>"...] [-Priority <PriorityValue>] [-BadItemLimit <Value>] [-AcceptLargeDataLoss]
此示例使用以下设置创建迁移批处理:
指定要移动的邮箱的 CSV 文件:C:\Users\Administrator\Desktop\LocalMove 01.csv。 如果只想移动主邮箱,请使用 CSV 文件中的 PrimaryOnly 开关或 MailboxType 值
PrimaryOnly
。 如果只想移动存档邮箱,请使用 ArchiveOnly 开关或 CSV 文件中的 MailboxType 值ArchiveOnly
。批名称:LocalMove 01。
目标数据库:MBX DB02。 如果不使用 TargetDatabase 参数,并且主邮箱数据库未在 CSV 文件中指定,则 Exchange 中的自动分发逻辑会随机选择 Active Directory 站点中的数据库。
存档邮箱的目标数据库:MBX DB02。 由于未在 命令或 CSV 文件) 中使用 ArchiveTargetDatabase 参数 (,因此存档邮箱数据库将移动到主邮箱所在的数据库。
如果我们在命令中使用 ArchiveOnly 开关 (或 CSV 文件) 而不在命令或 CSV 文件) 中使用 ArchiveTargetDatabase 参数 (,则 Exchange 中的自动分发逻辑将随机选择 Active Directory 站点中的数据库。
何时开始迁移:立即,因为我们使用的是 AutoStart 开关。 如果不使用此开关,则需要在创建迁移批处理后使用 Start-MigrationBatch cmdlet 来启动迁移批处理。
何时完成迁移:邮箱完成初始同步后,因为我们使用的是 “自动完成” 开关。 如果不使用此开关,则需要在创建迁移批处理后使用 Complete-MigrationBatch cmdlet 启动迁移批处理
优先级:
Normal
,因为我们未使用 Priority 参数。错误的项限制:10 (Exchange 命令行管理程序中的默认值为 0) 。 由于值小于 51,因此无需使用
AcceptLargeDataLoss
开关。
New-MigrationBatch -Local -AutoStart -AutoComplete -Name "LocalMove 01" -CSVData ([System.IO.File]::ReadAllBytes("C:\Users\Administrator\Desktop\LocalMove 01.csv")) -TargetDatabases "MBX DB02" -BadItemLimit 10
如何知道操作成功?
若要验证是否已成功创建本地移动请求,请执行以下步骤:
在 EAC 中,转到“收件人迁移”>并验证移动请求的状态 (请注意,可能需要单击“刷新) 。 可以选择移动请求,并在详细信息窗格中查看详细信息,或者单击“ 编辑。
在 EAC 中,转到 “收件人>迁移 ”,并单击“ 所有批的状态”。
检查通知消息。 发件人Microsoft Outlook。 移动请求完成后,你将收到主题 为 的消息
Migration batch <MigrationBatchName> has completed successfully
。在 EAC 中,单击通知查看器 查看请求的状态。
在 Exchange 命令行管理程序中,将 MailboxIdentity> 替换为<邮箱的名称、电子邮件地址或别名,并运行以下命令以验证基本属性值:
Get-MoveRequest -Identity <MailboxIdentity> | Format-List DisplayName,Alias,Status,*database*
在 Exchange 命令行管理程序中,将 BatchName> 替换为<移动请求的批名称值,并运行以下命令以验证基本属性值:
Get-MoveRequest -BatchName <BatchName> | Format-List DisplayName,Alias,Status,*database*
注意:如果在 EAC 中创建了移动请求,则批名称值为
MigrationService:<BatchNameValueFromTheEAC>
。如果在 EAC 中创建了移动请求,请将 BatchName> 替换为<指定的批名称值,并在 Exchange 命令行管理程序中运行此命令以验证有关移动中所有邮箱的摘要信息:
Get-MigrationUserStatistics -BatchId <BatchName>
如果在 EAC 中创建了移动请求,请将 EmailAddress> 替换为<已移动邮箱的电子邮件地址,并运行以下命令以查看有关指定邮箱的详细信息:
Get-MigrationUserStatistics -Identity <EmailAddress> | Format-List
有关详细信息,请参阅 Get-MigrationUserStatistics。
显示迁移批处理
有关如何使用 Exchange 命令行管理程序显示迁移批处理的示例,请参阅 Get-MigrationBatch 中的示例 2。
使用 .csv 批处理文件创建跨林移动
此示例配置迁移终结点,然后使用 .csv 文件创建一个从源林到目标林的跨林批处理移动。
New-MigrationEndpoint -Name Fabrikam -ExchangeRemote -Autodiscover -EmailAddress tonysmith@fabrikam.com -Credentials (Get-Credential fabrikam\tonysmith)
$csvData=[System.IO.File]::ReadAllBytes("C:\Users\Administrator\Desktop\batch.csv")
New-MigrationBatch -CSVData $csvData -Timezone "Pacific Standard Time" -Name FabrikamMerger -SourceEndpoint Fabrikam -TargetDeliveryDomain "mail.contoso.com"
有关为跨林移动准备好林的详细信息,请参阅下列主题:
有关语法和参数的详细信息,请参阅 New-MigrationBatch 和 New-MoveRequest。
如何知道操作成功?
要验证您是否已成功完成迁移,请执行下列操作:
在 Exchange 命令行管理程序中,运行以下命令以检索邮箱移动信息。
Get-MigrationUserStatistics -Identity BatchName -Status | Format-List
有关详细信息,请参阅 Get-MigrationUserStatistics。