多邮箱迁移
前面的文章讲到了使用New-MoveRequest命令迁移单个邮箱。由于单个邮箱的别名只需传递给New-MoveRequest命令的Identity参数,因此迁移单个邮箱相对简单。多邮箱迁移可以通过各种不同的方法实现,这里作一简单概述。
首先,将所有邮箱从一个数据库全部迁移到另一个数据库很容易实现,只需把Get-MailboxDatabase命令的结果通过管道(Pipe)技术输出到New-MoveRequest。示例如下:
Get-Mailbox –Database ‘Mailbox Database 001’ | New-MoveRequest –TargetDatabase `
‘Mailbox Database 002’
如果仅有少量邮箱需要迁移,可以考虑使用PowerShell的数组功能。假设我们希望迁移Neil、Rob及Mark三人的邮箱,脚本实现如下:
$MailboxesToMove = ‘neil’,’rob’,’mark’
ForEach ($SingleMailbox in $MailboxesToMove) {New-MoveRequest –Identity $SingleMailbox `
–TargetDatabase ‘Mailbox Database 002’ –BatchName Batch001}
在这个脚本中,首先定义了一个名为$MailboxesToMove的数组,这个数组包含上述3个待迁移的邮箱名称。然后,每个邮箱名称分别提交给New-MoveRequest命令进行处理,而并不区分邮箱的源数据库。
同样,也可以使用PowerShell的Get-Content命令。首先,创建一个包含待迁移邮箱名称的文本文件。图18的例子中,该文件命名为Mailboxes.txt。
图 18: Mailboxes.txt文件示例
下面的示例脚本即实现mailboxes.txt文件中所列邮箱的迁移:
$Mailboxes = Get-Content ./mailboxes.txt
For ($Start = 0; $Start -lt $Mailboxes.length; $Start++) {New-MoveRequest –Identity `
$Mailboxes[$Start] -TargetDatabase 'Mailbox Database 002'}
其中,Get-Content命令用于获取mailboxes.txt文件的内容并将内容指派给$Mailboxes。接下来,对$Mailboxes中的内容执行一个循环,每个循环中分别调用New-MoveRequest命令。
在本系列文章的第四部分,我们还将推出更多实现多邮箱迁移的方法。
结语
这部分内容主要讲述了如何管理迁移请求以及如何挂起请求。在后续的第四部分中,我们将了解Exchange 2010提供的邮箱迁移脚本。