在處理 ECS Windows相關案例中,我們遇到很多奇怪的操作系統問題,例如軟件安裝失敗,無法激活操作系統,無法訪問本地磁盤,網絡訪問受到影響,系統藍屏,系統Hang等,排查發現這與客戶安裝的各類殺毒防護軟件(360, Symantec, 服務器安全狗等)有關。一般而言,殺毒軟件在正常情況下會保護系統不受病毒、木馬的攻擊影響,但是在某些特殊情況下,可能會因為兼容性問題,導致Windows操作系統出現上述提到的異常的行為。
殺毒軟件原理
殺毒軟件的工作原理是在通過Windows內核驅動(Filter Driver)處理IRP請求來進行磁盤,網絡,應用程序的監控工作。
影響軟件安裝,激活,訪問本地磁盤文件 影響網絡訪問禁用殺毒軟件是否能消除其影響?
客戶經常會嘗試在殺毒軟件的管理控制臺禁用防護功能,但是該操作未必能消除其影響,實際上殺毒軟件的內核驅動仍然在運行,可能仍然會影響操作系統行為。只有完全卸載殺毒軟件或者禁用對應的內核驅動才能排除殺毒軟件的影響。
如何檢查殺毒軟件的內核驅動
我們可以通過Windows自帶工具設備管理器或者msinfo32.exe檢查正在運行的內核驅動,如果發現三方殺毒軟件的驅動還在運行,說明其仍然在影響操作系統行為。
Windows Server 2008 R2
打開設備管理器,點擊查看->顯示隱藏的設備,檢查”非即插即用驅動程序”,查看載入的驅動程序
Windows Server 2012
開始->運行->Msinfo32.exe -> 系統摘要-> 軟件環境->系統驅動程序。 檢查運行的驅動中是否有三方殺毒軟件的驅動。
NAVENG以及NAVEX15是Symantec的內核驅動
排查方法
對于懷疑殺毒軟件影響導致問題出現的案例, 如果有安裝殺毒軟件,請采用如下方案來避免殺毒軟件的影響。
卸載殺毒軟件,確認殺毒軟件內核驅動已經卸載,觀察問題是否再次發生。 使用msconfig進入安全模式,一般安全模式下不會載入三方殺毒軟件內核驅動,檢查在安全模式下是否有相同問題。 使用Clean Boot,避免載入三方殺毒軟件驅動測試
如果確認問題是三方殺毒軟件引起,您可以聯系軟件廠商,下載最新版本的殺毒軟件來排除兼容性問題。
示例案例
如下給出2個殺毒軟件導致問題的示例案例。
案例1 安裝.net失敗
問題描述
.net framework 4.0安裝不了,裝到一半的時候自動回滾,提示安裝失敗。
檢查系統程序,應用日志,發現如下報錯:
產品: Microsoft .NET Framework 4 Client Profile —錯誤 1406。無法將值 RequiredPrivileges 寫入注冊表項 SYSTEMCurrentControlSetServicesclr_optimization_v4.0.30319_32。系統錯誤 。請確認您有足夠的權限訪問該注冊表項,或者與您的技術支持人員聯系。
問題排查
由于提示權限訪問失敗,因此嘗試使用process monitor檢查是否有access denied錯誤出現,沒有發現提示訪問失敗。一般而言,如果訪問文件,注冊表出現權限失敗,會在process monitor查看到類似access denied的提示。 打開注冊表,嘗試手工定位到HKLMSYSTEMCurrentControlSetServices,手工創建測試項test失敗,檢查另外一臺Windows 2008 R2對比測試可以成功創建。
解決方案
根據上述測試和日志分析,我們懷疑訪問注冊表的過程中,在內核層面被拒絕,懷疑殺毒軟件影響。檢查發現服務器安全狗,卸載后問題解決,可以正常安裝。
案例2 Windows系統激活失敗
問題描述
Windows系統激活失敗
問題排查
運行激活命令:slmgr-ato,提示錯誤無法找到產品。 通過微軟官方網站的建議,需要刪除sppsvc臨時數據嘗試重新激活slmgr -rilc,提示Windows錯誤“0xc0000022”(Access Denied).
嘗試使用process monitor抓取日志,同樣沒有找到Access Denied的錯誤,懷疑三方殺毒軟件。 建議客戶卸載360殺毒軟件后問題解決。