错误 126: 找不到指定的模块的原因及解决方案

1.错误现象

尝试在“服务”管理单元窗口手动启动某项服务时,系统出现提示“错误126:找不到指定的模块

2.原因分析

该故障通常在由svchost服务宿主进程所启动的服务上发生。这一类的Windows服务,其实是以dll模块的形式插入某个svchost进程。如果该dll文件被破坏,或者注册表的相关键值被篡改,都可能导致问题。

这类服务所对应的Dll文件,是由

HKLMSYSTEMCurrentControlSetServicesServiceNameParameters

注册表项下的ServiceDll键值所定义的(此处的ServiceName是指服务名),如果该注册表键值出错,或者对应的Dll文件被破坏,就会导致这个问题。

通常不稳定的软件或者被木马病毒肆意篡改系统服务可能会导致此类问题的发生。
比如,在微软新闻组里有不少网友抱怨无法打开“磁盘管理”窗口,寻根溯源发现是“Logical Disk Manager”服务无法启动所导致。其中有一个case是系统被木马PCShare所感染,木马修改了“Logical Disk Manager”服务的注册表键值,把HKLMSYSTEMCurrentControlSetServicesdmserverParameters注册表项下的键值ServiceDll的数值数据指向木马的文件“%SystemRoot%System32driversYbfbqufe.sys”,尽管后来利用杀毒软件杀除木马,但是杀毒软件未能处理被木马篡改注册表键值,导致无法打开“磁盘管理”。

注意:不要将该故障和“错误2:系统找不到指定的文件”相混淆!

3.解决办法

对于“Logical Disk Manager”服务的问题,在以下的注册表项:

HKLMSYSTEMCurrentControlSetServicesdmserverParameters

确保将其下ServiceDll键值的数值数据修改为“%SystemRoot%System32dmserver.dll”。
如果注册表键值没有问题,请确保用正确的文件副本替换原来的dll文件,并重启系统。

如果你知道是某项系统服务的问题,志文工作室向您推荐一般的解决方法可参考如下:
1.开始-运行-输入”regedit”打开注册表,定位到注册表如下位置:

HKLMSYSTEMCurrentControlSetServices服务名称Parameters

查看表项下的键值serviceDll是否正常,可与正常的电脑上该项键值对比参考修改。
2.如果该处没有问题,查看其中涉及的dll文件位置,到相应位置查找该文件是否存在:
如不存在,从正常的电脑上拷贝该dll文件,置于相应位置;
如存在,查看该文件大小等信息是否异常,可与正常电脑上的该文件对比参考;
如一切正常,可尝试复制以下命令,开始-运行-输入”cmd”,在命令提示符下输入:
for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1

点赞 (1)
  1. 威言威语说道:

    好久没有研究计算机上面的应用了,现在折腾电脑少了

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.