■ 河北 朱書敏 王春海
編者按: Exchange Server 2016 Shell無法使用的故障有很多,但筆者此次遇到的一類故障并不是很常見,也很少有對該類故障的詳細解決,本文將針對此類故障做詳細介紹,希望能對讀者有所幫助。
今天筆者解決了一起由 于Active Directory服務器時間不對導致Exchange Server 2016 Shell無法使用的故障,下面介紹一下故障情況及解決過程。
在這個故障中,涉及到的服務器一共有3臺計算機:一臺Active Directory的服務器,一臺Exchange Server 2016郵箱服務器,一臺邊緣傳輸服務器。這幾臺都是ESXi中的虛擬機,服務器操作系統都是Windows Server 2016 Datacenter,如圖1所示。
安裝Exchange Server 2016的計算機是一臺從模板新部署的虛擬機,加入到172.20.8的 A c t i v e D i r e c t o r y,是一臺成員服務器。在172.20.1.16安裝郵箱服務,并在172.20.1.12安裝邊緣服務器,都非常順利,并沒有出錯。

圖1 實驗拓撲
在安裝完成后,進入Exchange管理中心都正常。接下來是在邊緣服務器導出邊緣訂閱文件然后在郵箱服務器導入邊緣訂閱文件,這一步就出了問題。
在邊緣傳輸服務器(圖1中IP地址為172.20.1.14的計算機)創建并導出邊緣訂閱文件之后,準備在郵箱服務器導入邊緣訂閱文件,在進入Exchange Shell時,出現了“Exchange出現‘WinRM無 法處理該請求,因為輸入XML包含講法錯誤’等提示”,如圖2所示。
因為提示中顯示“WinRM無法處理該請求”,筆者以前處理過該類故障,是WinRM IIS擴展沒有安裝的原因。因此打開服務器管理器添加WinRM IIS擴展,但是在安裝了WinRM IIS擴展之后,啟動Exchange Shell故障依舊。

圖2 無法連接到遠程服務器
以前筆者也多次安裝Exchange Server,還是第一次碰到這種故障。在網上搜索相關的故障介紹,看到的解決方法有很多,例如有的讓檢查防火墻是否啟用等,但此時的這些虛擬機的防火墻都是開啟的。
還有的介紹說是需要卸載重裝,如果重裝還需要卸載Exchange,并刪除注冊表等操作。
但是筆者認為這是一個“小故障”,還到不了需要重新安裝的地步。
在嘗試了多種辦法之后, 在“https://social.microsoft.com/Forums/zh-CN/ea04f18a-f669-46fb-97fd-47ad4828655b/e x c h a n g e-s h e l lw i n r m-x m l-?f o r u m=exchangeserverzhchs”帖子中看到此問題可能與虛擬機的系統時間有關。

圖3 虛擬機的時間比正確時間快

圖4 時間設置
經過檢查,發現當前ESXi平臺中,Exchange郵箱服務器、邊緣傳輸服務器、其他虛擬機的時間都正確,只有Active Directory服務器(IP地址 為 172.20.1.8)的時間不對。
但調整了該虛擬機的時間之后,馬上就又改回錯誤的時間,非常執著,無論是手動調整虛擬機的時間,還是通過NTP設置計算機的時間,該虛擬機的時間在調整為正確的時間后,稍等一會,該計算機的時間就又調整為錯誤的時間(而且是比當前的正確時間快14分鐘,如圖3所示)。
經過檢查后,發現了故障點。ESXi的主機時間不對,受影響的只有這臺Active Directory的虛擬機。而檢查虛擬機的配置,發現該虛擬機設置為了“同步客戶機時間與主機時間”項,如圖4所示。
找到故障原因后,就容易處理了。首先,修改ESXi主機時間為正確的時間,然后修改虛擬機配置,取消“同步客戶機時間與主機時間”項,再在虛擬機中調整計算機的時間,然后重新啟動郵箱服務器。再次執行Exchange Shell,此時就可以正常使用,執行:
New-Edge Subscription-FileData ([byte[]]$(Get-Content -Path "D:EdgeSubscription.xml"-Encoding Byte -ReadCount 0)) -Site "Default-First-Site-Name"
在郵箱服務器成功導入了邊緣訂閱文件,之后就可以繼續Exchange的配置了,在這些不再做介紹。