APP下载

自己动手 解决System进程的句柄数异常问题

2022-05-30平淡

电脑爱好者 2022年7期
关键词:句柄版本号管理器

平淡

问题分析

從上述的故障表现和系统提示基本可以知道,问题的出现是系统可用资源(如内存、CPU资源)被后台某些进程耗尽所致。由于这个问题是开机使用一段时间后才会出现,因此笔者首先强制重启出现问题的电脑,进入系统后立刻开始全盘扫描杀毒,但是Windows Defender扫描的结果显示并没有发现病毒。因此,笔者决定手动对后台进程进行监控。再次重启电脑,进入系统后立刻启动任务管理器,切换到“详细信息”选项卡后,在任意列项目上右击并选择“选择列”,然后在打开的窗口中勾选“句柄”“线程”“I/ O读取”“I/ O写入”“路径名称”和“命令行”等项目(图2)。

接着返回到任务管理器窗口中等待,过了一段时间后笔者发现,其中“System”进程的句柄数一直在大量地增加(有时甚至达到几十万个,正常状态一般只有几千个),而且其“I/O读取”、“I/O写入”数字也在同步增加,显然“系统资源不足”的问题就是该进程不断增加的句柄数耗尽了系统的可用资源而导致的(图3)。

查找问题

通过上面的分析,知道问题的出现是“System”进程不断增加的句柄所导致。通过图3所示的“路径名称”,可以知道该进程运行的程序是“C:\Windows\System32\Ntoskrnl.exe”。但打开这个文件查看其属性,从数字签名、产品名称均可以判断是系统的正常文件(图4)。

系统的正常文件怎么会导致上述问题的发生呢?原来,Ntoskrnl.exe是一个NT系统内核程序,它的主要作用是负责操作系统核心的任务。除了系统核心组件,日常驱动文件也是由其调用。它在任务管理器中对应的进程名为“System”,如果该进程占用了过多的系统资源,大多是由于其调用的驱动文件异常而导致的。

解决问题

分析出导致问题的原因后,解决方法就是找出其调用的驱动,将其停止并删除即可。一种方法是使用之前的文章中介绍的Process Explorer软件来查看其调用的线程,找出异常的文件并删除对应的服务。如果电脑中没有Process Explorer软件,也可以使用系统自带的组件来查找。

1使用“资源监视器”筛选进程

在任务栏的搜索框中输入“资源监视器”,启动该组件后在进程列表中勾选“System”进行筛选(图5)。接着再切换到“CPU”选项,展开下方的“关联的模块”,便会列出“System”进程加载的所有模块。对于是否为可疑模块,可以借助版本号来排查。点击“版本”,按照版本号进行排序。一般来说系统文件的版本号都是一致的,可疑程序的版本号则大多和系统版本不同。通过仔细排查,其中名为“f hdisbfasu.sys”的模块极为可疑(图6)。

2使用“系统信息”查看模块描述

在任务栏的搜索框中输入“msinfo32.exe”启动系统信息组件,在左侧的窗格中依次展开“软件环境→系统驱动程序”(也可以直接在下方的搜索框中输入“fhdisbfasu.sys”查找),可以看到这个驱动的描述是“LoadVir tual Disk”,疑似为一个虚拟磁盘软件的驱动文件(图7)。

3查看文件属性鉴别文件

按照图7显示的路径提示,打开资源管理器并找到“C:\Windows\System32\Drivers\fhdisbfasu.sys”文件,查看其文件属性,既没有微软数字签名,也没有版权等说明,因此基本上可以判断,这是一个第三方软件带来的驱动(图8)。

最终经过询问该员工,原来是在某非正规网站下载的一个虚拟光驱软件,安装后导致上述问题的出现。笔者判断应该是该安装包内置了驱动木马,或者其驱动和系统兼容性有问题导致的故障。找到导致问题的具体文件后,最后在注册表中找到其加载的键值并删除,重启后再进入资源管理器删除上述的驱动文件,自此顺利地解决问题。

猜你喜欢

句柄版本号管理器
ETCS基线3的系统版本管理方法
Windows文件缓冲处理技术概述
认识vSphere安装程序
高集成度2.5A备份电源管理器简化锂离子电池备份系统
在Win 7下利用凭据管理器提高访问速度等