在处理 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 写入注册表项 \SYSTEM\CurrentControlSet\Services\clr_optimization_v4.0.30319_32。系统错误 。请确认您有足够的权限访问该注册表项,或者与您的技术支持人员联系。
问题排查
由于提示权限访问失败,因此尝试使用process monitor检查是否有access denied错误出现,没有发现提示访问失败。一般而言,如果访问文件,注册表出现权限失败,会在process monitor查看到类似access denied的提示。 打开注册表,尝试手工定位到HKLM\SYSTEM\CurrentControlSet\Services\,手工创建测试项test失败,检查另外一台Windows 2008 R2对比测试可以成功创建。
解决方案
根据上述测试和日志分析,我们怀疑访问注册表的过程中,在内核层面被拒绝,怀疑杀毒软件影响。检查发现服务器安全狗,卸载后问题解决,可以正常安装。
案例2 Windows系统激活失败
问题描述
Windows系统激活失败
问题排查
运行激活命令:slmgr-ato,提示错误无法找到产品。 通过微软官方网站的建议,需要删除sppsvc临时数据尝试重新激活slmgr -rilc,提示Windows错误“0xc0000022”(Access Denied).
尝试使用process monitor抓取日志,同样没有找到Access Denied的错误,怀疑三方杀毒软件。 建议客户卸载360杀毒软件后问题解决。