既然共存环境已经设置好了,万事具备,我们可以开始迁移邮箱了。
1. 我们需要把 address policy 自动更新地址的功能禁止掉.
set-mailbox NHirons -EmailAddressPolicyEnabled $false
set-MailContact NHirons -EmailAddressPolicyEnabled $false
2. 准备生成新的 move request。我们登陆到目标服务器上,打开PowerShell ,运行一下命令.
$Rcred = Get-Credential ‘输入并且存储源服务器的登陆密码
$Lcred = Get-Credential ‘输入并且存储目标服务器的登陆密码
3. 在PowerShell 中切换目录,来到Exchange 安装目录下的“scripts”,运行如下命令。如果你想把已有的mailbox enable user或者 contact 对象转换成 mail enable user 对象,请使用 –userLocalObject 开关。
Prepare-MoveRequest.ps1 -Identity "Alex Heyne" –useLocalObject -overwritelocalobject -RemoteForestDomainController "ktpdc01.healthgrp.com.sg" -RemoteForestCredential $Rcred -LocalForestDomainController "hmaildc01.hmail.sg" -LocalForestCredential $Lcred -LinkedMailUser -TargetMailUserOU "OU=Users,OU=KTPH,OU=Exchange,DC=hmail,DC=sg"
4. 现在我们需要使用预先做好的脚本或者FIM的同步程序,来把迁移对象上的 routing address “target.contoso.com”改成 “source.contoso.com”。
5. 现在开始创建并且提交 新的 move request。这里要注意一点,如果源服务器是Exchange 2007而非 Exchange 2010, 我们就无法通过 HTTPS端口使用 MRSProxy 来进行邮箱迁移。我们需要使用 –remoteLegacy 这个开关,告诉目标服务器和它要讲话的是老类型服务器,需要通过RPC端口直接用MAPI的方式拉数据。
New-MoveRequest -Identity "Alex Heyne" -RemoteLegacy -TargetDatabase dag1db1 -RemoteGlobalCatalog "ktpdc01.healthgrp.com.sg" -RemoteCredential $Rcred -TargetDeliveryDomain hmail.alexandrahealth.com.sg -baditemlimit 100 –AcceptLargeDataLoss
6. 目标服务器会根据提交的 move request, 从源服务器上拉数据,并且在迁移完成以后,修改源森林中的对象的 AD属性。
7. 在源服务器那头,我们需要使用预先做好的脚本或者FIM的同步程序,来把迁移对象上的 routing address “source.contoso.com”改成 “target.contoso.com”。
8. 在客户端,用户会收到一个提示。关闭然后重新打开Outlook 邮件客户端,Outlook 会使用autodiscover 来自动更新 Outlook profile, 因此无需在客户端进行任何重新配置。
值此用户邮箱迁移结束。但是最后,需要注意一点:直到我们用脚本把邮件组(distribution group)迁移去另外一端 (未迁移之前,在目标森林中,这些组还是以 SyncedUDGasContact类型存在的。),已经迁移去新系统的用户无法在Outlook中添加或者删除组的成员。这点需要和用户实现沟通好。