Exchange-2016

Exchange Server 2010 到 2016 遷移

  • October 22, 2021

我工作的一家小公司正在執行自託管的 Exchange Server 2010,我的工作是將此伺服器遷移到 Exchange Server 2016,因為舊的伺服器已經有一段時間不支持了。

我知道 Exchange 2016 和 2010 可以共存,而且由於我們不能失去我們的電子郵件,所以我先做了一些測試。我在舊 Exchange 伺服器上創建了一個虛擬使用者,創建了一個遷移作業並嘗試訪問它(但目標是在遷移完成後關閉舊伺服器)。

郵件流(從/向外部/內部電子郵件發送/接收 - 一切正常!)不是問題。

但我無法讓 Outlook (2010) 客戶工作。請注意,我們僅在內部使用 Outlook - 在已加入域的電腦上,(目前)不需要外部訪問。每當我將虛擬帳戶添加到我的 Outlook 時,一切都會正常執行 - 但只要我關閉 Outlook 並再次打開它,Outlook 就無法再訪問資訊儲存。通過內部 URL 訪問虛擬郵件https://ex2016.domain.local/owa/非常有效。

當我在添加虛擬電子郵件帳戶後立即檢查連接狀態時,它會顯示那些通過 http 連接的 mapi(據我所知,這是自 2013 年 Exchange 以來的預設訪問方法)。我已經執行了自動發現測試,它是成功的。

有一個證書警告,因為目前這是安裝中的自簽名證書。但我也嘗試用頒發給真實域名的證書替換它,但這並沒有什麼不同。(即使我更改了證書和 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) 而不是交換後端 ( ex2016.domain.local:444) 對嗎?

這是 powershell 腳本的結果(我刪除了對舊交換伺服器的所有引用)


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

每當我將虛擬帳戶添加到我的 Outlook 時,一切都會正常執行 - 但只要我關閉 Outlook 並再次打開它,Outlook 就無法再訪問資訊儲存。當我在添加虛擬電子郵件帳戶後立即檢查連接狀態時,它會通過 http 連接顯示那些 mapi

確保您的 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)的內部/外部主機名以及證書中包含的域名有關。

請執行以下命令查看它們的配置是否正確(請使用您的郵箱身份更改cmdlet****的參數值,並且不要忘記更改任何敏感資訊。-Identity``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

引用自:https://serverfault.com/questions/1081280