本文原载于《21天从零开始做修Windows电脑专家:入门到精通》一书

某一次重启之后,发现笔记本的wifi无法连接了,显示为红叉。

在Windows10的设置里提示,没有在您的计算机上找到无线网卡,之类的。首先确认无线网卡驱动正常,为了保险起见,还回滚了一次驱动(因为曾经出现过Win10自动更新后驱动跪了的情况)。

那么是怎么回事呢?

万能的谷歌告诉我们,在操作系统层处理无线协议的服务是WLAN AutoConfig。

WLAN AutoConfig的服务名称是wlansvc,我们使用sc查询其运行状态:

嘿伙计你瞧,它挂了:)  错误码是1068。如果你在“服务”控制台中尝试启动它,会提示

436919cbgw1eweeu2sv5nj20dn063gm9

 

这是为什么呢?( ´◔ ‸◔’)

我们还是通过sc查询服务的依赖:

然后依次查询DEPENDENCIES栏中依赖服务的运行状态,我们发现,wcmsvc服务挂了:

错误码是0x2,这个代码太熟悉了,就是找不到文件嘛!哦我的上帝,它竟然告诉我找不到文件Σ( ° △ °|||)︴

但是服务如果这个dll真的不存在,那么应该是提示126: 找不到模块。

这时我想起似乎曾经拒绝过某个服务的安装,也许就是那时手滑看错了。

我们打开注册表,来到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wcmsvc,在Description键中可以看到提供服务的dll(之一)位于%SystemRoot%\System32\wcmsvc.dll。

在资源管理器中找到这个文件,并且检查权限及签名没有损坏。那说明就是注册表的错了。

从基友那正常运行的同版本Win10中导出HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wcmsvc这一项后,导入本机。测试启动服务sc start wcmsvc,sc query wcmsvc,得到RUNNING提示。

实际上由于错误操作导致服务添加失败,直接的体现就是这一项中少了Parameters这一项,0x2也就是由此而来的了。

 

另外,如果发现文件损坏或者修复注册表后仍无法启动,可以尝试从健康系统的拷贝文件替换。但是要注意,要对系统文件进行修改必须进行takeown,之后将无法恢复原文件的所属(TrustedInstaller),这是由Windows的安全机制导致的。