如何在Exchange 2010中使用PowerShell文本文件批量移动邮箱

在目前的企业应用中,Exchange的组织管理员可能会遇到在不同的邮箱存储或服务器之间移动用户的邮箱,以满足邮件系统优化和管理的需要。此外,在一些大型企业中,涉及到部门的合并,职员的转岗等,都会有可能需要进行用户邮箱的迁移。

通常情况下,可以直接在EMC中通过图形操作来完成一些常规的用户邮箱迁移。比如:迁移指定单个用户的邮箱,或者是迁移所有用户的邮箱,利用EMC都是能力所能及的。但是,如果是指定一批用户,而这些用户在属性上有没有共同点,可能提供的就是一个用户名字列表或者是邮箱的Alias列表,而且这一列表中的用户数量还相当可观,那要使用EMC来进行迁移就是一件让人头痛的事情了。

不过还好,Exchange 2010 中为Exchange系统管理员提供了可以使用EMS方式,利用PowerShell来进行邮箱迁移的绝佳方案。下面将演示怎样利用EMS快速迁移用户名单列表中用户的邮箱。

具体情况如下:

在同一个组织中,通过Get-Mailbox可以方便地查看现有邮箱状况。

“ZhangSan”、“Lisi”等的邮箱存储在“MDB20110918”邮箱存储中;

“WangWu”等的邮箱存储在“MDB20110920”邮箱存储中;

“Zhaoliu”、“Qianqi”等的邮箱存储在“MDB20110919”邮箱存储中;

“Sunba”等的邮箱存储在“MDB20110921”邮箱存储中;

而其它的邮箱均存储在默认邮箱数据库“Mailbox Database 1294512738”中。

Get-Mailbox | Select Name,Database

clip_image002

注意:默认Get-MailBox将列出前1000个邮箱,如果需要完全列出所有邮箱,可以加上-ResultSize参数,并给出参数值为unlimited。即:

Get-Mailbox -ResultSize unlimited | Select Name,Database

关于Get-MailBox更多可以参阅:http://technet.microsoft.com/zh-cn/library/bb123685.aspx

现在,因为某种原因,管理员需要将“zhangsan”、“Lisi”、“Wangwu”、“Zhaoliu”等用户的邮箱迁移到“MDB20110921”邮箱存储中。并且要求这一移动不能影响其它用户邮箱的正常使用和数据存储位置。

要方便快捷地解决以上问题,首先需要有一个邮箱迁移用户名单,直接以文本文件形式存在即可。每个用户一行,创建好后,放置在操作服务器上。

clip_image005

本示例中,创建了一个“userlist”文本文件,直接放置在C根目录下,其路径为“C:\userlist.txt”。

接下来可以在PowerShell中使用Get-Content命令读取该文件中的内容,用于Get-Mailbox进行筛选邮件,最后使用New-MoveRequest创建邮箱移动请求。

关于Get-Content更多可参阅:http://technet.microsoft.com/zh-cn/library/dd347719.aspx

关于New-MoveRequest更多可参阅:http://technet.microsoft.com/zh-cn/library/dd351123.aspx

具体的命令如下:

Get-Content c:\userlist.txt | Get-Mailbox | New-MoveRequest –TargetDatabase mdb20110921

clip_image007

同样需要注意列表中要迁移的邮箱数是否超过1000个,如果超过1000个则需要加“-ResultSize unlimited”参数。

邮箱在迁移的过程中是需要一段时间的,如果想了解邮箱迁移的状况或邮箱是否迁移完成,可以使用以下命令完成:

Get-MoveReqeust

更多可参阅:http://technet.microsoft.com/zh-cn/library/dd335227.aspx

clip_image009

当看到所有迁移请求的状态都置为“Completed”,那么表明邮箱的迁移操作已经全部完成,可以通过Get-Mailbox再次查看邮箱状态。

Get-Mailbox | Select Name,Database

clip_image011

可以看到指定的邮箱已经迁移到了目标邮箱存储,而不再列表中的用户邮箱完全未受到影响。

对于已经完成的邮箱迁移请求,必须要将其删除,否则会影响对已迁移邮箱的后续其它操作。删除迁移请求可以直接通过EMC在控制台中选择删除,也可以用通过如下命令进行删除:

Remove-MoveRequest

更多可参阅:http://technet.microsoft.com/zh-cn/library/dd335149.aspx

Get-MoveRequest –MoveStatus Completed | Remove-MoveRequest

clip_image013

至此完成按用户列表文件的用户邮箱迁移操作。