使用命令行管理程序中的 MoveMailbox.ps1 脚本移动邮箱

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2015-03-09

与 Microsoft Exchange Server 2007 中的 Move-Mailbox cmdlet 类似,MoveMailbox.ps1 脚本为移动邮箱提供了同步管理体验。默认情况下,脚本安装在 C:\Program Files\Microsoft\Exchange Server\V14\Scripts。

注释注意:
您仅可以使用此脚本进行本地移动,而不能使用此脚本进行远程(跨林)移动。有关远程移动邮箱的信息,请参阅准备跨林移动请求的邮箱

MoveMailbox.ps1 执行以下任务:

  1. 创建本地移动请求。

  2. 等待邮箱移动完成。

  3. 在完成之后清除移动请求。

MoveMailbox.ps1 包括两个参数集。第一个参数集移动单个邮箱,也可以通过管道将邮箱传入该命令。第二个参数集移动在指定数据库上驻留的所有邮箱,也可以通过管道将数据库对象传入该命令来移动在这些邮箱数据库上驻留的所有邮箱。

注释注意:
命令行管理程序不会自动加载脚本。必须在所有脚本前加上“.\”。例如,要运行 MoveMailbox.ps1 脚本,请键入 .\MoveMailbox.ps1

有关使用和编写脚本的详细信息,请参阅使用 Exchange 命令行管理程序编写脚本

若要了解与移动请求相关的其他管理任务,请查看管理移动请求

使用 MoveMailbox.ps1 移动特定的邮箱

您必须先获得权限,然后才能执行此过程。若要查看所需的权限,请参阅邮箱权限主题中的“移动邮箱”条目。

以下参数语法集和表列出了可用于移动特定邮箱的参数。

MoveMailbox.ps1 -Identity <Object> -DatabaseMap <Hashtable> -TargetDatabase <Object> [-StartBatchSize <Int32>] [-BadItemLimit <Int32>] [-AutoSuspend] [-pollInterval <Int32>] [-DomainController <Object>]
参数 必需 描述

DatabaseMap

必需

DatabaseMap 参数指定移入和移出数据库之间的映射。如果要使用管道方法标识要移入的邮箱,则使用此参数。DatabaseMap 参数需要满足以下条件:

  • 请使用以下语法: @{"<SourceDatabase>"="<TargetDatabase>"}

  • SourceDatabase 名称必须匹配 Get-Mailbox cmdlet 报告的数据库名称。

  • 可以包括多个数据库映射。用分号 (;) 分隔多个映射,例如,@{"DB1"="DBA";"DB2"="DBB"}

注释注意:
不能将此参数与 TargetDatabase 参数一起使用。如果要通过管道传输命令,并且用户匹配 Get-Mailbox cmdlet 中的标识,但不匹配 DatabaseMap cmdlet 中的源数据库,将跳过该用户的邮箱。

Identity

必需

Identity 参数指定要移动的邮箱的标识。此参数接受下列值:

  • ADObjectID

  • 别名

  • 可分辨名称 (DN)

  • 域\帐户

  • GUID

  • LegacyExchangeDN

  • SmtpAddress

  • 用户主体名称 (UPN)

注释注意:
可以使用 Get-Mailbox cmdlet 通过管道传输 Identity 参数。

TargetDatabase

必需

TargetDatabase 参数指定要将邮箱移动到的数据库的标识。此参数接受下列值:

  • GUID

  • 可分辨名称 (DN)

  • 服务器\数据库名

  • 数据库名称

注释注意:
不能将此参数与 DatabaseMap 参数一起使用。

AutoSuspend

可选

AutoSuspend 开关指定是否在移动请求达到 CompletionInProgress 状态之前将其挂起。移动被挂起后,其状态为 AutoSuspended。如果使用此参数,则必须通过使用 Resume-MoveRequest cmdlet 完成移动。

BadItemLimit

可选

BadItemLimit 参数指定在移动邮箱请求遇到数据损坏时跳过的损坏项目数。如果不希望跳过损坏的项目,请使用值 0。使用值 -1 时跳过的损坏项目数不受限制。此参数的有效输入范围为 -12,147,483,647。默认值为 0。建议您保留默认值 0,仅当移动请求失败时,才更改 BadItemLimit 参数值。

DomainController

可选

DomainController 参数指定将此配置更改写入 Active Directory 的域控制器的完全限定域名 (FQDN)。

PollInterval

可选

PollInterval 参数指定在检查是否完成移动请求之前等待的时间长度(秒)。例如,如果 PollInterval 设置为 180,MoveMailbox.ps1 脚本将每 3 分钟检查一次移动请求状态,查看是否有状态为“已完成”的移动。默认时间为 10 秒。

StartBatchSize

可选

StartBatchSize 参数指定,为达到负载平衡目的而需要启动邮箱移动的频率。此参数仅在一次移动多个邮箱时才适用。例如,如果此参数设置为 10,而要移动 15 个邮箱,则在脚本发现要将 10 个邮箱移到同一目标数据库时,它将调用 New-MoveRequest cmdlet。

示例

示例 1

本示例移动以“ay”开头的邮箱。如果这些邮箱驻留在邮箱数据库 DB1 上,则此示例使用 DatabaseMap 参数将它们移动到邮箱数据库 DBA。如果这些邮箱驻留在 DB2 上,则此示例将它们移动到邮箱数据库 DBB。

Get-Mailbox ay* | .\MoveMailbox.ps1 -DatabaseMap @{"DB1"="DBA";"DB2"="DBB"}

示例 2

本示例将 Tony Smith 的邮箱移动到 DB2。

.\MoveMailbox.ps1 -Identity "Tony@Contoso.com" -TargetDatabase "DB2"

使用 MoveMailbox.ps1 移动驻留在特定数据库的邮箱

您必须先获得权限,然后才能执行此过程。若要查看所需的权限,请参阅邮箱权限主题中的“移动邮箱”条目。

以下参数语法集和表列出了将基于数据库移动邮箱的参数。

MoveMailbox.ps1 -MailboxDatabase <Object> [-DatabaseMap <Hashtable>] [-TargetDatabase <Object>] [-StartBatchSize <Int32>] [-BadItemLimit <Int32>] [-AutoSuspend] [-pollInterval <Int32>] [-DomainController <Object>]

参数

必需

描述

MailboxDatabase

必需

MailboxDatabase 参数指定要从中移动邮箱的邮箱数据库。

此参数接受下列值:

  • GUID

  • 可分辨名称 (DN)

  • 服务器\数据库名

  • 数据库名称

注释注意:
不能将此参数与 DatabaseMap 参数一起使用。

AutoSuspend

可选

AutoSuspend 开关指定是否在移动请求达到 CompletionInProgress 状态之前将其挂起。移动被挂起后,其状态为 AutoSuspended。如果使用此参数,则必须通过使用 Resume-MoveRequest cmdlet 完成移动。

BadItemLimit

可选

BadItemLimit 参数指定在移动邮箱请求遇到数据损坏时跳过的损坏项目数。如果不希望跳过损坏的项目,请使用值 0。使用值 -1 时跳过的损坏项目数不受限制。此参数的有效输入范围为 -12,147,483,647。默认值为 0。建议您保留默认值 0,仅当移动请求失败时,才更改 BadItemLimit 参数值。

DatabaseMap

可选

DatabaseMap 参数指定移入和移出数据库之间的映射。如果要使用管道方法标识要移入的邮箱,则使用此参数。DatabaseMap 参数需要满足以下条件:

  • 请使用以下语法: @{"<SourceDatabase>"="<TargetDatabase>"}

  • SourceDatabase 名称必须匹配 Get-Mailbox cmdlet 报告的数据库名称。

  • 可以包括多个数据库映射。用分号 (;) 分隔多个映射,例如,@{"DB1"="DBA";"DB2"="DBB"}

注释注意:
不能将此参数与 TargetDatabase 参数一起使用。如果要通过管道传输命令,并且用户匹配 Get-Mailbox cmdlet 中的标识,但不匹配 DatabaseMap cmdlet 中的源数据库,将跳过该用户的邮箱。

DomainController

可选

DomainController 参数指定将此配置更改写入 Active Directory 的域控制器的完全限定域名 (FQDN)。

PollInterval

可选

PollInterval 参数指定在检查是否完成移动请求之前等待的时间长度(秒)。例如,如果 PollInterval 设置为 180,MoveMailbox.ps1 脚本将每 3 分钟检查一次移动请求状态,查看是否有状态为“已完成”的移动。默认时间为 10 秒。

StartBatchSize

可选

StartBatchSize 参数指定,为达到负载平衡目的而需要启动邮箱移动的频率。此参数仅在一次移动多个邮箱时才适用。例如,如果此参数设置为 10,而要移动 15 个邮箱,则在脚本发现要将 10 个邮箱移到同一目标数据库时,它将调用 New-MoveRequest cmdlet。

TargetDatabase

可选

TargetDatabase 参数指定要将邮箱移动到的数据库的标识。此参数接受下列值:

  • GUID

  • 可分辨名称 (DN)

  • 服务器\数据库名

  • 数据库名称

注释注意:
不能将此参数与 DatabaseMap 参数一起使用。

示例

示例 1

此示例将驻留在邮箱数据库 DB1 上的所有邮箱移动到数据库 DB2。

.\MoveMailbox.ps1 -MailboxDatabase DB1 -TargetDatabase DB2

示例 2

此示例使用 Get-MailboxDatabase cmdlet 检索其邮箱数据库以“DB1”开始的所有邮箱数据库对象,然后将结果通过管道传输到 MoveMailbox.ps1 脚本。

Get-MailboxDatabase DB1* | .\MoveMailbox.ps1 -DatabaseMap @{"DB10"=DBA;"DB11"="DBB";"DB12"="DBA"}

 © 2010 Microsoft Corporation。保留所有权利。