Exchange Server 2010 至 2016 迁移

Exchange Server 2010 至 2016 迁移

我所在的一家小公司正在运行自托管的 Exchange Server 2010,我的工作是将该服务器迁移到 Exchange Server 2016,因为旧服务器已经很长时间没有支持了。

我知道 Exchange 2016 和 2010 可以共存,而且由于我们不能丢失电子邮件,所以我先做了一些测试。我在旧的 Exchange 服务器上创建了一个虚拟用户,创建了一个迁移作业并尝试访问它(但目标是在迁移完成后关闭旧服务器)。

邮件流(发送/接收外部/内部电子邮件 - 一切正常!)不是问题。

但我无法让 Outlook (2010) 客户端正常工作。请注意,我们仅在内部使用 Outlook - 在已加入域的计算机上,外部访问(当前)不是必需的。每当我将虚拟帐户添加到 Outlook 时,一切都会正常工作 - 但只要我关闭 Outlook 并再次打开它,Outlook 就无法再访问信息存储。通过内部 URL 访问虚拟邮件https://ex2016.domain.local/owa/非常有效。

当我在添加虚拟电子邮件帐户后立即检查连接状态时,它显示那些 mapi over http 连接(据我所知,这是自 Exchange 2013 以来的默认访问方法)。我已经执行了自动发现测试,它成功了。

有一个证书警告,因为目前这是安装时的自签名证书。但我也尝试用颁发给真实域名的证书替换它,但这并没有什么不同。(即使我更改了证书和 URL,Outlook 仍然显示证书警告,我不知道为什么!)

但我怀疑证书问题与我的客户端问题有关。在我进行网络研究期间,我发现 Exchange 2016 服务器上存在一个错误,其中未启用 mapi 虚拟目录上的身份验证,这导致这些客户端连接失败。我检查了一下(我安装了 Exchange 2016 CU21),微软显然修复了该错误 - 在我的安装中,身份验证已经启用。

我现在真的迷茫了。任何关于哪里出错的提示都非常感谢!

更新信息

谢谢你的回复:关于 Outlook 版本,我仔细检查了一下,应该得到支持。

Microsoft Outlook 2010 (14.0.7268.5000) SP2 MSO (14.0.7268.5000)

关于证书警告:这是第一个警告(安全证书是由您未选择信任的公司颁发的。)。感谢您关于安装证书的提示,我不知道这种可能性。

真正奇怪的是,我点击了“安装”,选择为整个计算机安装,然后关闭 Outlook。重新打开 Outlook 后,出现了上述问题,一分钟后,再次出现了相同的证书警告,尽管我之前已经安装并点击了信任。我重复了该步骤,这次是针对本地用户,第二次重启后,一切开始正常工作!

为什么我必须安装两次证书? Outlook 仅连接到默认网站 ( ex2016.domain.local:443),而不连接到 Exchange 后端 ( ex2016.domain.local:444),对吗?

这是 powershell 脚本的结果(我删除了对旧 exchange 服务器的所有引用)


Transcript started, output file is C:\log.txt
 C:\Windows\system32>
 
 
PS>Get-OabVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL

Identity                      : EX2016\OAB (Default Web Site)
Server                        : EX2016
BasicAuthentication           : False
WindowsAuthentication         : True
OAuthAuthentication           : True
InternalAuthenticationMethods : {WindowsIntegrated, OAuth}
ExternalAuthenticationMethods : {WindowsIntegrated, OAuth}
InternalUrl                   : https://ex2016.domain.local/OAB
ExternalUrl                   :



 C:\Windows\system32>
PS>Get-WebServicesVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL 

Identity                      : EX2016\EWS (Default Web Site)
Server                        : EX2016
CertificateAuthentication     :
InternalAuthenticationMethods : {Ntlm, WindowsIntegrated, WSSecurity, OAuth}
ExternalAuthenticationMethods : {Ntlm, WindowsIntegrated, WSSecurity, OAuth}
LiveIdNegotiateAuthentication :
WSSecurityAuthentication      : True
LiveIdBasicAuthentication     : False
BasicAuthentication           : False
DigestAuthentication          : False
WindowsAuthentication         : True
OAuthAuthentication           : True
AdfsAuthentication            : False
InternalUrl                   : https://ex2016.domain.local/EWS/Exchange.asmx
ExternalUrl                   :



 C:\Windows\system32>
PS>Get-OutlookAnywhere | fl Identity, server, *Auth*, InternalHostName, ExternalHostName


Identity                           : EX2016\Rpc (Default Web Site)
Server                             : EX2016
ExternalClientAuthenticationMethod : Negotiate
InternalClientAuthenticationMethod : Ntlm
IISAuthenticationMethods           : {Basic, Ntlm, Negotiate}
InternalHostname                   : ex2016.domain.local
ExternalHostname                   :



 C:\Windows\system32>
PS>Get-OwaVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL 

Identity                      : EX2016\owa (Default Web Site)
Server                        : EX2016
ClientAuthCleanupLevel        : High
InternalAuthenticationMethods : {Basic, Fba}
BasicAuthentication           : True
WindowsAuthentication         : True
DigestAuthentication          : False
FormsAuthentication           : True
LiveIdAuthentication          : False
AdfsAuthentication            : False
OAuthAuthentication           : False
ExternalAuthenticationMethods : {Fba}
InternalUrl                   : https://ex2016.domain.local/owa
ExternalUrl                   :



 C:\Windows\system32>
PS>Get-ClientAccessServer | fl Identity, Name, AutodiscoverServiceInternalUri

Identity                       : EX2016
Name                           : EX2016
AutoDiscoverServiceInternalUri : https://ex2016.domain.local/Autodiscover/Autodiscover.xml


 C:\Windows\system32>
PS>Get-EcpVirtualDirectory| fl Identity, server, *Auth*, InternalURL, ExternalURL

Identity                      : EX2016\ecp (Default Web Site)
Server                        : EX2016
InternalAuthenticationMethods : {Basic, Fba}
BasicAuthentication           : True
WindowsAuthentication         : True
DigestAuthentication          : False
FormsAuthentication           : True
LiveIdAuthentication          : False
AdfsAuthentication            : False
OAuthAuthentication           : False
ExternalAuthenticationMethods : {Fba}
InternalUrl                   : https://ex2016.domain.local/ecp
ExternalUrl                   :



 C:\Windows\system32>
PS>Get-ActiveSyncVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL


Identity                            : EX2016\Microsoft-Server-ActiveSync (Default Web Site)
Server                              : EX2016
MobileClientCertificateAuthorityURL :
BasicAuthEnabled                    : True
WindowsAuthEnabled                  : False
ClientCertAuth                      : Ignore
InternalAuthenticationMethods       : {}
ExternalAuthenticationMethods       : {}
InternalUrl                         : https://ex2016.domain.local/Microsoft-Server-ActiveSync
ExternalUrl                         :



 C:\Windows\system32>
PS>Get-MapiVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL


Identity                      : EX2016\mapi (Default Web Site)
Server                        : EX2016
IISAuthenticationMethods      : {Ntlm, OAuth, Kerberos, Negotiate}
InternalAuthenticationMethods : {Ntlm, OAuth, Kerberos, Negotiate}
ExternalAuthenticationMethods : {Ntlm, OAuth, Kerberos, Negotiate}
InternalUrl                   : https://ex2016.domain.local/mapi
ExternalUrl                   : https://ex2016.domain.local/mapi



 C:\Windows\system32>
PS>Get-PowerShellVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL


Identity                      : EX2016\PowerShell (Default Web Site)
Server                        : EX2016
CertificateAuthentication     : True
InternalAuthenticationMethods : {}
ExternalAuthenticationMethods : {}
LiveIdNegotiateAuthentication : False
WSSecurityAuthentication      : False
LiveIdBasicAuthentication     : False
BasicAuthentication           : False
DigestAuthentication          : False
WindowsAuthentication         : False
OAuthAuthentication           : False
AdfsAuthentication            : False
InternalUrl                   : http://ex2016.domain.local/powershell
ExternalUrl                   :



 C:\Windows\system32>
PS>Get-ExchangeCertificate | fl Identity, FriendlyName, Subject, CertificateDomains, Services, Issuer, *not*, Status


Identity           : EX2016.domain.local\xxxx_Cert_1_xxxx
FriendlyName       : Microsoft Exchange Server Auth Certificate
Subject            : CN=Microsoft Exchange Server Auth Certificate
CertificateDomains : {}
Services           : SMTP
Issuer             : CN=Microsoft Exchange Server Auth Certificate
NotAfter           : 10.09.2026 15:12:39
NotBefore          : 06.10.2021 15:12:39
Status             : Valid

Identity           : EX2016.domain.local\xxxx_Cert_2_xxxx
FriendlyName       : Microsoft Exchange
Subject            : CN=EX2016
CertificateDomains : {EX2016, EX2016.domain.local}
Services           : IIS, SMTP
Issuer             : CN=EX2016
NotAfter           : 06.10.2026 15:11:29
NotBefore          : 06.10.2021 15:11:29
Status             : Valid

Identity           : EX2016.domain.local\xxxx_Cert_3_xxxx
FriendlyName       : WMSVC-SHA2
Subject            : CN=WMSvc-SHA2-EX2016
CertificateDomains : {WMSvc-SHA2-EX2016}
Services           : None
Issuer             : CN=WMSvc-SHA2-EX2016
NotAfter           : 04.10.2031 12:32:50
NotBefore          : 06.10.2021 12:32:50
Status             : Valid

Identity           : EX2016.domain.local\xxxx_Cert_4_xxxx
FriendlyName       : real.domain.org (rapidssl rsa ca 2018)
Subject            : CN=real.domain.org
CertificateDomains : {real.domain.org}
Services           : IMAP, POP, SMTP
Issuer             : CN=RapidSSL RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US
NotAfter           : 05.11.2021 13:00:00
NotBefore          : 07.10.2019 02:00:00
Status             : RevocationCheckFailure



 C:\Windows\system32>
PS>Get-OrganizationConfig | fl MapiHttpEnabled


MapiHttpEnabled : True


 C:\Windows\system32>
PS>Get-CasMailbox -Identity Dummy.User | fl MapiHttpEnabled


MapiHttpEnabled :


 C:\Windows\system32>
PS>Stop-Transcript

答案1

每当我将虚拟帐户添加到 Outlook 时,一切都会正常工作 - 但一旦我关闭 Outlook 并再次打开它,Outlook 就无法再访问信息存储。当我在添加虚拟电子邮件帐户后立即检查连接状态时,它显示那些 mapi over http 连接

确保您的 Outlook 版本是最新的且受支持:对 Mapi over HTTP 的支持

同时,尝试为您的邮箱创建一个新的配置文件,看看是否有任何区别。

有一个证书警告,因为当前这是来自安装的自签名证书。

证书警告的描述是什么?

Outlook 中常见的证书警告如下:

1 -The security certificate was issued by a company you have not chosen to trust.

如果您使用的是 IIS 自签名证书,该证书将不会自动添加到受信任的根证书存储区,您应该通过单击按钮“查看证书“ 和 ”安装证书“对您的客户。

有关自签名证书的更多详细信息:自签名证书

2 -The security certificate has expired or is not yet valid.

点击 ”查看证书“并查看其有效时间,如果已过期,请更新并重新启动IIS。

3 -The name on the security certificate is invalid or does not match the name of the site.

此警告通常与虚拟目录/服务(例如 MAPI、Outlook Anywhere、SCP)的内部/外部主机名以及证书中包含的域名有关。

请运行以下命令,查看配置是否正确(-Identity请使用您的邮箱身份更改cmdlet参数的值Get-CasMailbox,并且不要忘记更改任何敏感信息。):

Start-Transcript -Path C:\log.txt
Get-OabVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Get-WebServicesVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL 
Get-OutlookAnywhere | fl Identity, server, *Auth*, InternalHostName, ExternalHostName 
Get-OwaVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL 
Get-ClientAccessServer | fl Identity, Name, AutodiscoverServiceInternalUri 
Get-EcpVirtualDirectory| fl Identity, server, *Auth*, InternalURL, ExternalURL 
Get-ActiveSyncVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL
Get-MapiVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL 
Get-PowerShellVirtualDirectory | fl Identity, server, *Auth*, InternalURL, ExternalURL 
Get-ExchangeCertificate | fl Identity, FriendlyName, Subject, CertificateDomains, Services, Issuer, *not*, Status
Get-OrganizationConfig | fl MapiHttpEnabled
Get-CasMailbox -Identity <User> | fl MapiHttpEnabled
Stop-Transcript

相关内容