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/
非常有效。當我在添加虛擬電子郵件帳戶後立即檢查連接狀態時,它會顯示那些通過 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