本文原載於《21天從零開始做修Windows電腦專家:入門到精通》一書
某一次重啟之後,發現筆記本的wifi無法連接了,顯示為紅叉。
在Windows10的設置里提示,沒有在您的計算機上找到無線網卡,之類的。首先確認無線網卡驅動正常,為了保險起見,還回滾了一次驅動(因為曾經出現過Win10自動更新後驅動跪了的情況)。
那麼是怎麼回事呢?
萬能的谷歌告訴我們,在操作系統層處理無線協議的服務是WLAN AutoConfig。
WLAN AutoConfig的服務名稱是wlansvc,我們使用sc查詢其運行狀態:
1 2 3 4 5 6 7 8 9 10 |
> sc query wlansvc SERVICE_NAME: wlansvc TYPE : 20 WIN32_SHARE_PROCESS STATE : 1 STOPPED (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 1068 (0x42c) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 |
嘿夥計你瞧,它掛了:) 錯誤碼是1068。如果你在「服務」控制台中嘗試啟動它,會提示
這是為什麼呢?( ´◔ ‸◔’)
我們還是通過sc查詢服務的依賴:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
> sc qc wlansvc [SC] QueryServiceConfig 成功 TYPE : 20 WIN32_SHARE_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : C:\WINDOWS\system32\svchost.exe -k LocalSystemNetwork Restricted LOAD_ORDER_GROUP : TDI TAG : 0 DISPLAY_NAME : WLAN AutoConfig DEPENDENCIES : nativewifip : RpcSs : Ndisuio : wcmsvc SERVICE_START_NAME : LocalSystem |
然後依次查詢DEPENDENCIES欄中依賴服務的運行狀態,我們發現,wcmsvc服務掛了:
1 2 3 4 5 6 7 8 9 |
> sc query wcmsvc SERVICE_NAME: wcmsvc TYPE : 20 WIN32_SHARE_PROCESS STATE : 1 STOPPED (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 2 (0x2) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 |
錯誤碼是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的安全機制導致的。
sfc /scannow
哈哈我一開始就試了這個,並沒有什麼卯月
以前還很有用的/w
(/ω・\)是啊
中秋快樂~~
中秋快樂www
然而之前手賤我也是+1
等等為什麼你的網址是millionsb
#(滑稽)怎麼了
#(滑稽)我想怎麼不用makedie那個
細節不要在意
[害羞]