背景

Exchange 2013 生命周期将在2023年4月份终结。升级已经势在必行。而升级过程中会存在共存阶段。本篇尽量减少文章篇幅,介绍关键部分和遇到的疑问和问题该如何解决。

共存方案

image.png

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

image.png

  • 安装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。报错如下: image.png

主要原因为数据库架构版本仍然是老架构版本,需要更新数据库架构。 image.png

解决方案: Exchange 2019加入DAG后,重启所有DAG成员的information store服务,然后执行以下操作即可。

需要对所有的EX2019数据库执行以下操作:

Update-DatabaseSchema DB01
Dismount-Database DB01
Mount-Database DB01

再看数据库架构: image.png

然后就可以执行迁移了。 最好是从2019的powershell创建数据库,就可以省去更新数据库架构的操作了。

全部迁移后,可以逐步去掉Exchange2013了。