使用命令行管理程序中的 MoveMailbox.ps1 脚本移动邮箱
**适用于:**Exchange Server 2010
**上一次修改主题:**2009-12-08
与 Microsoft Exchange Server 2007 中的 Move-Mailbox cmdlet 类似,MoveMailbox.ps1 脚本为移动邮箱提供了同步管理体验。默认情况下,脚本安装在 C:\Program Files\Microsoft\Exchange Server\V14\Scripts。
备注
您仅可以使用此脚本进行本地移动,而不能使用此脚本进行远程(跨林)移动。有关远程移动邮箱的信息,请参阅Prepare Mailboxes for Cross-Forest Move Requests。
MoveMailbox.ps1 执行以下任务:
- 创建本地移动请求。
- 等待邮箱移动完成。
- 在完成之后清除移动请求。
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 参数需要满足以下条件:
注意:
不能将此参数与 TargetDatabase 参数一起使用。如果要通过管道传输命令,并且用户匹配 Get-Mailbox cmdlet 中的标识,但不匹配 DatabaseMap cmdlet 中的源数据库,将跳过该用户的邮箱。
|
Identity |
必需 |
Identity 参数指定要移动的邮箱的标识。此参数接受下列值:
注意:
可以使用 Get-Mailbox cmdlet 通过管道传输 Identity 参数。
|
TargetDatabase |
必需 |
TargetDatabase 参数指定要将邮箱移动到的数据库的标识。此参数接受下列值:
注意:
不能将此参数与 DatabaseMap 参数一起使用。
|
AutoSuspend |
可选 |
AutoSuspend 开关指定是否在移动请求达到 |
BadItemLimit |
可选 |
BadItemLimit 参数指定在移动邮箱请求遇到数据损坏时跳过的损坏项目数。如果不希望跳过损坏的项目,请使用值 |
DomainController |
可选 |
DomainController 参数指定将此配置更改写入 Active Directory 的域控制器的完全限定的域名 (FQDN)。 |
PollInterval |
可选 |
PollInterval 参数指定在检查是否完成移动请求之前等待的时间长度(秒)。例如,如果 PollInterval 设置为 180,MoveMailbox.ps1 脚本将每 3 分钟检查一次移动请求状态,查看是否有状态为“已完成”的移动。默认时间为 10 秒。 |
StartBatchSize |
可选 |
StartBatchSize 参数指定,为达到负载平衡目的而需要启动邮箱移动的频率。此参数仅在一次移动多个邮箱时才适用。例如,如果此参数设置为 |
示例
示例 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 参数指定要从中移动邮箱的邮箱数据库。 此参数接受下列值:
注意:
不能将此参数与 DatabaseMap 参数一起使用。
|
AutoSuspend |
可选 |
AutoSuspend 开关指定是否在移动请求达到 |
BadItemLimit |
可选 |
BadItemLimit 参数指定在移动邮箱请求遇到数据损坏时跳过的损坏项目数。如果不希望跳过损坏的项目,请使用值 |
DatabaseMap |
可选 |
DatabaseMap 参数指定移入和移出数据库之间的映射。如果要使用管道方法标识要移入的邮箱,则使用此参数。DatabaseMap 参数需要满足以下条件:
注意:
不能将此参数与 TargetDatabase 参数一起使用。如果要通过管道传输命令,并且用户匹配 Get-Mailbox cmdlet 中的标识,但不匹配 DatabaseMap cmdlet 中的源数据库,将跳过该用户的邮箱。
|
DomainController |
可选 |
DomainController 参数指定将此配置更改写入 Active Directory 的域控制器的完全限定的域名 (FQDN)。 |
PollInterval |
可选 |
PollInterval 参数指定在检查是否完成移动请求之前等待的时间长度(秒)。例如,如果 PollInterval 设置为 180,MoveMailbox.ps1 脚本将每 3 分钟检查一次移动请求状态,查看是否有状态为“已完成”的移动。默认时间为 10 秒。 |
StartBatchSize |
可选 |
StartBatchSize 参数指定,为达到负载平衡目的而需要启动邮箱移动的频率。此参数仅在一次移动多个邮箱时才适用。例如,如果此参数设置为 |
TargetDatabase |
可选 |
TargetDatabase 参数指定要将邮箱移动到的数据库的标识。此参数接受下列值:
注意:
不能将此参数与 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"}