Hello各位小伙伴们,失踪人口回归啦~~~这次和大家分享Exchange Server 2010升级到Exchange Server 2016的方法。正式开始前先啰嗦几句,为什么我要写这篇文章呢?一方面有客户有exchange 服务器升级的需求,另一方面,如果客户使用的21V世纪互联运营的Office 365并且邮箱要做混合部署的话,也需要把本地已有的Exchange服务器升级到2013版本或者以上。考虑到这两个方面,我打算为大家分享本地Exchange服务器升级的方法。
-
准备环境
服务器 |
Exchange Server 2010 |
Exchange Server 2016 |
域控服务器DC |
在进行升级之前,我们需要对目前已有的环境作相应的配置。我们需要配置默认脱机通讯簿,创建用于将Exchange 2010升级到Exchange 2016的管理员帐户。
在域控服务器上,以管理员的身份运行Powershell,依次运行以下命令行来重置授权状态:
- Restart-Service CertSvc
- slmgr -rearm
- slmgr EX2010 -rearm
- slmgr EX2016 -rearm
切换到Exchange 2010 ,以Exchange管理员的身份登录,打开Exchange Management Shell,依次运行以下的命令行:
- Get-OfflineAddressBook
- Get-MailboxDatabase | Format-Table Name, Server, OfflineAddressBook -Auto
- Get-MailboxDatabase | Set-MailboxDatabase -OfflineAddressBook "Default Offline Address Book"
//这条命令将验证EX2010服务器上的每个邮箱数据库都分配了默认脱机通讯簿。 这些步骤将在安装Exchange 2016之前完成。由于我们的主题是升级EX2010到EX2016,所以我提前已经安装好了Exchange 2016。
- Get-MailboxDatabase | Format-Table Name, Server, OfflineAddressBook -Auto
以Exchange管理员的身份登录Exchange 2016。由于此时我们处于EX2010和EX2016共存的状态,管理员帐户不处于Exchange 2016中的数据库中,因此我们必须使用特定的URL,将管理员路由到Exchange 2016管理中心。打开游览器,输入特定的URL,这里我们输入Exchange 2016登录URL https://EX2016/ecp?ExchClientVer=15登录Exchange 2016管理员中心。
在收件人(Recipients)功能下,单击新建用户邮箱,在这里我们的取名为Upgrade Admin。
点击权限(permissions),在角色组下添加我们刚刚创建的用户Upgrade Admin。
创建了新的Exchange管理员账户之后,我们还需要做以下几个准备工作:
- 为新Exchange Server 2016服务器添加和更新内部和外部URL
- 更新Exchange Server 2010 URL
- 为新的Exchange组织申请证书
使用Upgrade Admin登录exchange 2016,点击服务器(Server),选择EX2016,点击编辑。
指定外部主机名称框中,在这里我们统一内外部主机名称均为mail.Contoso.local,指定外部客户端登录组织的验证方式,这里我们选择NTLM,点击Save保存更改。
单击虚拟目录(virtual directories)选项卡,点击配置。输入外部客户端访问服务器使用的域名,这里我们键入mail.Contoso.local,然后单击保存,这将为所有Exchange 2016虚拟目录配置外部URL。
在工具栏上面,筛选服务器为EX2016,系统将列出和EX2016相关的所有目录。
双击owa (Default Web Site),我们发现外部URL已经被配置成为刚刚所设置的URL。
还是在EX2016的环境,我们启动Exchange Management Shell,依次运行以下命令符。
- $HostName = "EX2016"
//根据外部URL上设置的值设置内部URL
- Set-EcpVirtualDirectory "$HostNameECP (Default Web Site)" -InternalUrl ((Get-EcpVirtualDirectory "$HostNameECP (Default Web Site)").ExternalUrl)
- Set-WebServicesVirtualDirectory "$HostNameEWS (Default Web Site)" -InternalUrl ((Get-WebServicesVirtualDirectory "$HostNameEWS (Default Web Site)").ExternalUrl)
- Set-ActiveSyncVirtualDirectory "$HostNameMicrosoft-Server-ActiveSync (Default Web Site)" -InternalUrl ((Get-ActiveSyncVirtualDirectory "$HostNameMicrosoft-Server-ActiveSync (Default Web Site)").ExternalUrl)
- Set-OabVirtualDirectory "$HostNameOAB (Default Web Site)" -InternalUrl ((Get-OabVirtualDirectory "$HostNameOAB (Default Web Site)").ExternalUrl)
- Set-OwaVirtualDirectory "$HostNameOWA (Default Web Site)" -InternalUrl ((Get-OwaVirtualDirectory "$HostNameOWA (Default Web Site)").ExternalUrl)
- Set-PowerShellVirtualDirectory "$HostNamePowerShell (Default Web Site)" -InternalUrl ((Get-PowerShellVirtualDirectory "$HostNamePowerShell (Default Web Site)").ExternalUrl)
//配置OAB
- Get-OfflineAddressBook | Where {$_.ExchangeVersion.ExchangeBuild.Major -Eq 15} | Set-OfflineAddressBook -GlobalWebDistributionEnabled $True -VirtualDirectories $Null
我们运行完了这些命令后,可以返回Exchange 管理员中心,可以看到内外部URL已经设置为一样的值了。
新建(New)一个Exchange证书, 为证书命名,在这里我们命名为Exchange Services ,点击下一步。
确保没有选中"请求通配符证书",然后单击下一步。
选择证书需要安装的组织EX2016,点击下一步。
在证书列表中查看你想要包含的域,单击下一步,进入域编辑器Domain Editor。在"域编辑器"窗口中的"域名"框中,键入你要添加的域,这里我们写如EX2010.Contoso.local,然后单击"确定"。
指定要保存证书的路径。
这里我们省略申请CA证书的步骤。Exchange 服务器可以使用自签名的证书,或者第三方权威机构颁发的证书,这里我们推荐大家申请后者,如果要与Office 365混合部署的话,则需要第三方权威机构颁发的证书。申请好证书后,在状态栏点击完成(Complete)导入证书。
在Exchange证书界面,导入我们刚刚申请好的证书,点击确认。双击进入exchange service,你可以查看证书相关信息。
点击"services"服务,勾选SMTPandIIS,点击保存。
-
准备服务切换
做完了以上准备工作之后,我们开始切换服务。我们将更新Exchange 2010和Exchange 2016服务器的服务连接点(service connection points),更新DNS 记录,将DNS记录指向Exchange Server 2016,并验证组织内部的邮件流。我们将配置运行在新的Exchange server 2016上的Outlook Anywhere 以及客户端验证(Client Authentication)。
在Exchange 2010环境下,打开Exchange Management Shell,依次运行以下命令符。
//设置Outlook Anywhere 参数
- Set-OutlookAnywhere "EX2010RPC (Default Web Site)" -ClientAuthenticationMethod Basic -SSLOffloading $False -ExternalHostName mail.Contoso.local -IISAuthenticationMethods NTLM, Basic
//设置Autodiscover内部URI
- Set-ClientAccessServer -Identity EX2010 -AutoDiscoverServiceInternalUri https://autodiscover.Contoso.local/Autodiscover/Autodiscover.xml
//重新设置IIS
- IISReset
在Exchange 2016环境下,打开Exchange Management Shell,依次运行以下命令符。
//设置Autodiscover内部URI
- Set-ClientAccessService -Identity EX2016 -AutoDiscoverServiceInternalUri https://autodiscover.Contoso.local/Autodiscover/Autodiscover.xml
//重新设置IIS
- IISReset
返回域控服务器,打开服务器管理Server Manager console,右上角点击工具(Tools),选择DNS。
在DNS管理员下,点击Forward Lookup Zones,选择Contoso.local。
双击mail。
更新IP地址,这将把来自mail.contoso.local的请求导向Exchange Server 2016。
做完了以上步骤,我们回到EX2010刷新DNS。
打开Exchange Management Shell,输入IPConfig /flushdns
在EX2016也做同样的事情,刷新DNS。打开Exchange Management Shell,输入IPConfig /flushdns
-
邮箱迁移
打开游览器,输入邮箱登录URL,输入用户名和密码之后,可以看到用户是登录到Exchange 2010的Outlook Web App ,这是因为用户邮箱目前还位于Exchange 2010 邮箱数据库中。我们需要把位于Exchange server2010的邮箱迁移到Exchange 2016。
打开Exchange server 2016 Exchange Management Shell,运行以下命令符,验证邮箱数据库内容索引状态。
- Get-MailboxDatabaseCopyStatus
确保在ContentIndexState列上,状态显示为Healthy。如果显示为Failed或者 Suspended,我们需要运行以下命令符。
- $MDBName = Get-MailboxDatabase -Server EX2016
//停止Exchange搜索服务
- Stop-Service MSExchangeFastSearch
//停止Host Controller Service
- Stop-Service HostControllerService
//创建一个可用于存放索引的位置
- $IndexFolder = Get-ChildItem -Path "C:Program FilesMicrosoftExchange ServerV15Mailbox$MDBName" | Where-Object {($_.PSIsContainer) -and ($_.Name -like "*.Single")}
//移除索引文件夹
- Remove-Item "C:Program FilesMicrosoftExchange ServerV15Mailbox$MDBName$IndexFolder" -Force -Recurse
//重新开启Exchange 搜索服务
- Start-Service MSExchangeFastSearch
//重新开启ost Controller Service
- Start-Service HostControllerService
运行完成之后,我们接着输入以下命令符:
//创建一个新的迁移请求
- New-MoveRequest -Identity Administrator -TargetDatabase (Get-MailboxDatabase -Server EX2016).Name
//验证迁移请求
- Get-MoveRequest
//移除迁移请求
- Get-MoveRequest | Remove-MoveRequest
打开游览器,输入https://mail.Contoso.local/ecp进入Exchange 2016管理中心。以管理员的身份登录,点击迁移(Migration)。在工具栏上,点击New新建一个迁移请求,选择Move to a different database。选择位于Exchange server 2010的用户,点击Add添加。
添加好之后,点击下一步。
为迁移批次命名,选择归档规则以及目标数据库。这里我们选择Exchange server 2016作为我们的目标数据库。
指定迁移完成后,接收迁移报告的对象。
我们可以查看迁移的进度,点击View Details查看详情。
等待迁移完成。
登录原本位于exchange 2010的邮箱SaraD,此时我们可以看到,SaraD的邮箱已经位于Exchange 2016,迁移完成。