背景
Exchange 2013 生命周期将在2023年4月份终结。升级已经势在必行。而升级过程中会存在共存阶段。本篇尽量减少文章篇幅,介绍关键部分和遇到的疑问和问题该如何解决。
共存方案
Exchange2013 需要升级到CU21之后方可和Ex2019共存,从而进一步升级为2019。
环境介绍
主机名 | IP | 系统版本 | 角色 |
---|---|---|---|
demo-dc | 172.16.7.54 | 2012R2 | DC |
demo-mbx01 | 172.16.7.57 | 2012R2 | MBX |
demo-mbx02 | 172.16.7.58 | 2012R2 | MBX |
demo-cas01 | 172.16.7.55 | 2012R2 | CAS |
demo-Ex2019 | 172.16.7.56 | 2019DC | Ex2019 |
测试环境中,2013的客户端访问角色我只安装了一台,2019也只安装了一台,域名immomochat.com
升级过程
- 升级林、域功能级别 将AD的域、林功能级别提升至Window Server 2012 R2, 该级别是Exchange2019要求的最低级别,同时也是Windows server 2012 R能支持的的最高级别。
打开"Active Directory域和信任关系"控制台,升级林功能级别即可。
- Exchange 2019基础组件和先决条件
- .NET 4.8 Framwork
- Visual C++ Redistributable Package for Visual Studio 2012 and 2013
- IIS URL 重写模块
- Remote Tool, Administration Pack, and Windows Features
Install-WindowsFeature Server-Media-Foundation, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS
基础软件下载详见: https://learn.microsoft.com/zh-cn/exchange/plan-and-deploy/prerequisites?view=exchserver-2019
- 启用mapi over http Exchange 2013默认使用的还是rpc over http, 而Exchange 2016和2019已经默认使用mapi over http了。建议安装之前先将Exchange 2013环境更改为mapi方式。
Set-OrganizationConfig –MapiHttpEnabled $True
-
安装Exchange2019 (过程略)
-
配置Exchanege2019 该过程原本也想略过,这里就简单写点。
- 证书导入和应用(略)
- 配置Service Connection Point (scp)
Add-PSSnapin microsoft.exchange* $svr = (Get-ExchangeServer -Identity Demo-EX*).name foreach($i in $svr){ Set-ClientAccessServer -Identity $i -AutoDiscoverServiceInternalUri https://mail.immomochat.com/Autodiscover/Autodiscover.xml }
- 虚拟目录配置 包括 owa、ecp、ews、oab、activesync、outlookanywhere、mapi的虚拟目录。
Add-PSSnapin microsoft.exchange*
$svr = (Get-ExchangeServer -Identity Demo-EX*).name
Foreach($i in $svr){
Get-EcpVirtualDirectory -Server $i | Set-EcpVirtualDirectory -InternalUrl https://mail.immomochat.com/ecp -ExternalUrl https://mail.immomochat.com/ecp
Get-OwaVirtualDirectory -Server $i | Set-OwaVirtualDirectory -InternalUrl https://mail.immomochat.com/owa -ExternalUrl https://mail.immomochat.com/owa
Get-WebServicesVirtualDirectory -Server $i | Set-WebServicesVirtualDirectory -InternalUrl https://mail.immomochat.com/EWS/Exchange.asmx -ExternalUrl https://mail.immomochat.com/EWS/Exchange.asmx
Get-ActiveSyncVirtualDirectory -Server $i | Set-ActiveSyncVirtualDirectory -InternalUrl https://mail.immomochat.com/Microsoft-Server-ActiveSync -ExternalUrl https://mail.immomochat.com/Microsoft-Server-ActiveSync
Get-OabVirtualDirectory -Server $i | Set-OabVirtualDirectory -InternalUrl https://mail.immomochat.com/OAB -ExternalUrl https://mail.immomochat.com/OAB
Get-MapiVirtualDirectory -Server $i | Set-MapiVirtualDirectory -InternalUrl https://mail.immomochat.com/mapi -ExternalUrl https://mail.immomochat.com/mapi
Get-OutlookAnywhere -Server $i | Set-OutlookAnywhere -InternalHostname mail.immomochat.com -InternalClientAuthenticationMethod Ntlm -InternalClientsRequireSsl $true -ExternalHostname mail.immomochat.com -ExternalClientAuthenticationMethod NTLM -ExternalClientsRequireSsl $true
}
-
- PO3和IMAP配置
Add-PSSnapin microsoft.exchange*
$svr = (Get-ExchangeServer -Identity Demo-EX*).name
Foreach($i in $svr){
Set-POPSettings -X509CertificateName mail.immomochat.com -server $i
Set-IMAPSettings -X509CertificateName mail.immomochat.com -server $i
}
-
- 修改OWA认证方式
Add-PSSnapin microsoft.exchange*
$svr = (Get-ExchangeServer -Identity Demo-EX*).name
Foreach($i in $svr){
Get-OwaVirtualDirectory -Server $i | Set-OwaVirtualDirectory -LogonFormat 'UserName' -DefaultDomain 'immomochat.com' -Identity 'exchange\owa (Default Web Site)’
}
注意点
- Exchange 2019服务器输入产品密钥,提示无效的密钥。
解决方案: 可以输入Exchange 2013的密钥,激活后也是Ex2019。 也可以使用命令输入2019的密钥。
Set-ExchangeServer Demo-Ex2019 -ProductKey 12345-12345-12345-12345-12345
- 登录ecp后,在Ex2019上创建db,db总是显示"无法完成你的请求,请稍后几分钟再试",看不到挂载状态。
解决方案: 使用该方式登录ecp: https://<Exchange Server 2019>/ecp/?ExchClientVer=15.2 并创建数据库。可以将administrator移动到2019的数据库。
- Ex2019DAG未加入DAG前,Ex2013上的邮箱可以迁移到Ex2019的DB上。加入DAG后,发现无法迁移到Ex2019的DB。报错如下:
主要原因为数据库架构版本仍然是老架构版本,需要更新数据库架构。
解决方案: Exchange 2019加入DAG后,重启所有DAG成员的information store服务,然后执行以下操作即可。
需要对所有的EX2019数据库执行以下操作:
Update-DatabaseSchema DB01
Dismount-Database DB01
Mount-Database DB01
再看数据库架构:
然后就可以执行迁移了。 最好是从2019的powershell创建数据库,就可以省去更新数据库架构的操作了。
全部迁移后,可以逐步去掉Exchange2013了。