Windows 8的Wifi問題真的很多,之前常發生的是"連線能力受限",然後不知何時開始,乾脆就直接斷線,或是睡眠中醒來後,網路卡就被停用掉了。
之前介紹的 Windows 8連線能力受限的解決方法 也變得不管用了,因為根本找不到這個裝置,所以用netsh去停用或啟用連線也變得完全沒有作用。
手動的解決方式,是打開裝置管理員,然後將無線網卡停用後再重新啟用。
但每次要手動做這個動作,真的很麻煩。所以又研究了一下如何把這個動作變成自動執行。
當網路卡失效時,在事件檢視器的應用程式中會看到一個錯誤,如下:
例用這個事件,觸發一個自動將網卡關閉再重開的動作。
剩下的問題就是如何用指令的方式重啟網卡?
首先要下載WDK。在這個網頁裡點選Download WDK 8下載WDK安裝程式。
安裝WDK後,在 C:\Program Files (x86)\Windows Kits\8.0\Tools\x64\ 目錄下可以找到Device Console程式 devcon.exe。
有了Device Console程式後,接著要找出網卡的識別碼。在裝置管理員中,在網卡上按右鍵,選"內容",然後選擇 "詳細資料",再選"硬體識別碼",如下:
在這個例子裡,網卡的識別碼為 "PCI\VEN_8086&DEV_08B2"。
以管理員身份執行命令列,然後輸入下列指令即可關閉網卡:
"C:\Program Files (x86)\Windows Kits\8.0\Tools\x64\devcon.exe" disable "PCI\VEN_8086&DEV_08B2"
啟用網卡的指令如下:
"C:\Program Files (x86)\Windows Kits\8.0\Tools\x64\devcon.exe" enable "PCI\VEN_8086&DEV_08B2"
將這兩行指令設成一個批次檔,以管理員的身份執行就可以自動執行網卡重啟的動作。
最後,用前一篇所介紹的方式,在工作排程器中設定當發生網卡失效的事件時,就自動重啟網卡。
星期五, 12月 26, 2014
星期六, 7月 12, 2014
Windows 8 Wifi 連線能力受限的解決方式
Windows 8的Wifi常常莫名其妙罷工,三不五時用到一半就突然變成受限制的連線,wifi變成無法連線。不只使用中三不五時會發生,睡眠後醒來也常常這樣。這麼明顯的問題,不知微軟為什麼拖了那麼久還搞不定?
每次遇到這種問題都要很鴕鳥地把wifi關掉再重開一次,讓wifi重抓IP。
因為發生機率實在太高了,乾脆弄一個批次檔自動執行wifi關閉和重開的動作,內容如下:
netsh interface set interface name="Wi-Fi" disable
netsh interface set interface name="Wi-Fi" enable
再分析wifi罷工時,由於連線出現問題,因此都會發生DNS名稱解析逾時的狀況。在系統的事件檢視器中如下:
利用這個特性,我們用工作排程器定義一個觸發事件,每當DNS發生解析逾時的情況,第一個懷疑就是wifi又出狀況了,所以就自動把wifi關掉再重開一次。
打開"電腦管理",在工作排程器中建立一個工作,如下:
名稱隨自己高興取,注意執行工作的使用者帳戶必需有管理員的身份。設定"不論使用者登入與否均執行"。
解發程序設定在系統記錄裡發生由DNS Client Events發出1014(即DNS解析逾時)事件時自動觸發。
觸發的動作就是執行上述的開關wifi批次檔。把批次檔放在根目錄下,不要放在使用者目錄裡,以免去因權限產生的問題。
設定好之後,只要wifi罷工,排程器就會自動把wifi重開,讓wifi順利繼續工作了!
8/15補充:
有網友反應這個方法工作狀況不如預期,在這做補充說明。
當然,看起來這不是簡單的問題,所以我只能提供一個可能方向,讓大家可以有個方向去找找看問題可能出在哪裡。
首先,某些電腦在開關wifi後仍然有連線受限的問題。
我不確定您的情況是否如下圖:
如果是的話,那不用擔心。因為我的電腦上也是這樣,但重點是網路使用是沒問題的。
每次遇到這種問題都要很鴕鳥地把wifi關掉再重開一次,讓wifi重抓IP。
因為發生機率實在太高了,乾脆弄一個批次檔自動執行wifi關閉和重開的動作,內容如下:
netsh interface set interface name="Wi-Fi" disable
netsh interface set interface name="Wi-Fi" enable
把這個內容存在一個.bat或.cmd檔內,每次wifi出問題時,只要用管理員身份執行這個批次檔即可。
再分析wifi罷工時,由於連線出現問題,因此都會發生DNS名稱解析逾時的狀況。在系統的事件檢視器中如下:
利用這個特性,我們用工作排程器定義一個觸發事件,每當DNS發生解析逾時的情況,第一個懷疑就是wifi又出狀況了,所以就自動把wifi關掉再重開一次。
打開"電腦管理",在工作排程器中建立一個工作,如下:
名稱隨自己高興取,注意執行工作的使用者帳戶必需有管理員的身份。設定"不論使用者登入與否均執行"。
解發程序設定在系統記錄裡發生由DNS Client Events發出1014(即DNS解析逾時)事件時自動觸發。
觸發的動作就是執行上述的開關wifi批次檔。把批次檔放在根目錄下,不要放在使用者目錄裡,以免去因權限產生的問題。
設定好之後,只要wifi罷工,排程器就會自動把wifi重開,讓wifi順利繼續工作了!
8/15補充:
有網友反應這個方法工作狀況不如預期,在這做補充說明。
當然,看起來這不是簡單的問題,所以我只能提供一個可能方向,讓大家可以有個方向去找找看問題可能出在哪裡。
首先,某些電腦在開關wifi後仍然有連線受限的問題。
我不確定您的情況是否如下圖:
如果是的話,那不用擔心。因為我的電腦上也是這樣,但重點是網路使用是沒問題的。
如果windows下方的task bar上的網路符號出現驚嘆號那才是無法連線,這時做wifi開關的動作應該是有效的。
其次,在指令中的name裡所用的名稱,確實在某些中文版機器上可能要用 "無線網路連線"。
至於到底該用什麼名稱,請打開控制台裡的 "網路連線" 看看你的無線網路是顯示什麼名稱,若它顯示 "Wi-Fi" 就用 "Wi-Fi";若是顯示 "無線網路連線" 就用 "無線網路連線"。
最後一個問題,當發生DNS Client Events不會觸發開關Wifi的批次檔,這個問題看起來比較複雜一點。
首先請確認一下執行工作的帳戶是否有管理員身份,並確定 "不論使用者登入與否均執行"。
然後在觸發程序中,確認來源和事件識別碼都設定正確,並且勾選 "已啟用",表示啟用這個觸發條件。
如果你的設定都是正確的,卻還是看不出它有觸發,請把你的工作的歷程記錄打開。
接著,先手動觸發看工作是否能順利執行,這在歷程記錄裡會看到一個 "由使用者觸發的工作"。
若手動觸發可以順利完成,接著你必需故意製造觸發條件(DNS Client Events, 以我的電腦來說,睡眠後再醒來很容易就產生這個事件),再回到歷程記錄裡看看實際有沒有觸發。
如下圖,在系統記錄中,8/15 11:01:13、8:52:55、8:23:53所發生的DNS Client Events,在工作歷程記錄裡分別在11:01:14、8:52:56、8:23:54都有被正確觸發。
如果繼續往下找,還有很多這樣相對應的記錄,表示DNS Client Events都有觸發所設定的工作。
其次,在指令中的name裡所用的名稱,確實在某些中文版機器上可能要用 "無線網路連線"。
至於到底該用什麼名稱,請打開控制台裡的 "網路連線" 看看你的無線網路是顯示什麼名稱,若它顯示 "Wi-Fi" 就用 "Wi-Fi";若是顯示 "無線網路連線" 就用 "無線網路連線"。
最後一個問題,當發生DNS Client Events不會觸發開關Wifi的批次檔,這個問題看起來比較複雜一點。
首先請確認一下執行工作的帳戶是否有管理員身份,並確定 "不論使用者登入與否均執行"。
然後在觸發程序中,確認來源和事件識別碼都設定正確,並且勾選 "已啟用",表示啟用這個觸發條件。
如果你的設定都是正確的,卻還是看不出它有觸發,請把你的工作的歷程記錄打開。
接著,先手動觸發看工作是否能順利執行,這在歷程記錄裡會看到一個 "由使用者觸發的工作"。
若手動觸發可以順利完成,接著你必需故意製造觸發條件(DNS Client Events, 以我的電腦來說,睡眠後再醒來很容易就產生這個事件),再回到歷程記錄裡看看實際有沒有觸發。
如下圖,在系統記錄中,8/15 11:01:13、8:52:55、8:23:53所發生的DNS Client Events,在工作歷程記錄裡分別在11:01:14、8:52:56、8:23:54都有被正確觸發。
如果繼續往下找,還有很多這樣相對應的記錄,表示DNS Client Events都有觸發所設定的工作。
訂閱:
文章 (Atom)









