スリープ復帰時にWiFiにつながってくれない
うちのWindows10のPCについての話なのですけど、過去、電源を付けた時にWi-Fi(無線LAN)に自動的に接続してくれないという問題があってそれに対処したことがありました。
その後、平和な日々を過ごしていたのですけど、ある時からスリープになった状態から復帰したときにWi-Fiに再接続してくれない状態になりました。(おそらくWindows Updateか何かのタイミングからだと思います。)
具体的には、画面左下の時計近くのWi-Fiマークのところが、ネット世界から孤立していることを示すマークになります。さみしい。
で、このマークをクリックして、いつも使っているWi-Fiネットワークを選べばつながってくれるんですけども、これを毎回というのはとても面倒です。
というわけで、これを自動的につながってくれるようにいろいろいじってみたのでその時のメモです。
前回の対策と違って、今回のはひと手間ふた手間あるので自己責任的な感じになりますのでご注意ください。
一応、設定してからもう2か月くらいは経ったのですけど私は再び快適に過ごせています。
設定手順
設定手順のメモです。
これから何を設定するのかというと、先ほど書いたようなネットワークに再接続する操作をクリックではなく、自動的に同じような動きをしてくれるような設定を入れるというものです。
前回の「高速スタートアップ」の対策は予防策といった形でしたが、今回のはつながらない前提でそこからつなぎに行くという事後対策とのような形です。
で、マウスでクリックできるようなWindowsの操作はだいたいコマンドでできるんだろうと思って調べたらやっぱりコマンドがあって、後述のようにしたらできました。
接続の情報を集める
まず、Wi-Fiに接続するコマンドを作るための情報を集めます。
スタートメニューから (もしくはWin+Rからcmdと打って) コマンドプロンプトの画面を出して、次のコマンドを打ちこみます。
netsh wlan show profiles
すると、環境によりますがいろいろ出てきます。
ここでメモっておくのが①の部分のインターフェイスと、②の部分のユーザープロファイルです。
①に関しては、PCにWi-Fiにつなぐためのデバイスが複数ある場合にはそれぞれ表示されます。(この画像だと黄色の①とオレンジの①)
複数あるときは普段使っているものをメモします。
②に関しては、Wi-Fiのネットワークの名前が出ているので、これも普段使っているものをメモします。
コマンドを作る
今調べた情報でコマンドを作ります。
メモ帳か何かを開きまして、今の②と①をいい感じに使ってコマンドを書きます。
netsh wlan connect name="②" interface="①"
で、これを”.bat”として保存します。
ファイル名はなんでもいいですけどかっこいいのがいいでしょう。
私は”wifi_connect.bat”にしました。
うまく保存できれば、ちょっとアイコンのサイズとか見た目は違うかもしれませんが、こういう感じでバッチファイルとして保存されます。
で、この時点で、このバッチファイルをダブルクリックすると今つながっているWi-Fiが一瞬切れてからもう一度つながるという動作をします。
これが動いていればひとまずOK。
ここから下の手順が面倒な場合は、これをデスクトップなどに置いておけばダブルクリックだけでWi-Fiに接続できることにはなります。
自動的に接続するよう設定する
あとは、このバッチファイルがスリープから復帰したときに自動的に動いてくれるようにするといいです。
まず、作ったバッチファイルはどこかあまり触ることのない場所に保存しましょう。
私はDドライブ直下に入れました。 (D:\wifi_connect.bat)
で、お次は画面左下のWindowsマークを右クリックして「コンピューターの管理」を開きます。
出てきた画面の左で、「システムツール」>「タスクスケジューラ」を選択。
続いて、画面右の「操作」で「基本タスクの作成」を押します。
すると、基本タスクの作成の画面が出るので、名前欄に好きな名前を入れて「次へ」を押します。(私は「WiFi接続」にしました。)
トリガーとして「特定イベントのログへの記録時」を選んで次へ。
ログ「システム」、ソース「Power-Troubleshooter」、イベントID「1」を入れて次へ。
操作は「プログラムの開始」を選んで次へ。
プログラムの開始の画面では、先ほど作ったバッチファイルを選択して次へ。
最後の要約の画面では、下の「[完了]をクリックしたときに、このタスクの[プロパティ]ダイアログを開く」をチェックしてから「完了」をクリックします。
プロパティの画面が開くので、「ユーザーがログオンしているかどうかにかかわらず実行する」と「最上位の特権で実行する」を選択して「OK」してみました。
というわけで、ここまでくるとコンピューターの管理の画面のど真ん中に、今作った「WiFi接続」のタスクができます。
以上で、設定完了です。
実際にスリープと復帰を試してみて特に問題が出ていないようなら使えると思います。
これを入れたことで、たまにWindowsがちゃんと接続してくれたときであっても、このバッチファイルが必ずつなぎなおすので一瞬Wi-Fi切れるという事象が発生します。
この事象で問題の出るアプリがなければOKかなと思います。
ちなみに
ちなみに、上記のタスク設定のところで「Power-Troubleshooter」というイベントに反応してバッチファイルが動くようにしました。
これはスリープ&復帰を何度か試しながらイベントログを確認した結果、毎回ちょうどよく出てくるのがこのイベントくらいしかなさそうだったためです。
ググってみたら今回のような対策をしている方が結構いらっしゃったのですけど、だいたいこれを使われているようなので間違いないと思います。
まとめ
というわけで、うまくつながってくれないのは遺憾の意を表明するところではありますけど、この設定を入れてつながってくれるようになったら大変スッキリしまして心晴れやかになりました。
ストレスなくパソコンが使えるっていうのはいいことです。
おわり。
コメント
こんにちは、WiFiの自動接続が出来なくなったので探していたらたどり着きました。
テンポよく記載されてとても分かりやすい記事でしたので、最初の記事と合わせて2例とも、こちらのブログに紹介させていただきました。
https://goodjobnahibi.blogspot.com/2021/05/wifi.html
お役に立ってよかったです!
また、ご紹介もありがとうございます!!
自作パソコンにWiFiカード増設して使用しています。
休止やスリープから復帰後、やはり接続しないトラブルに遭い、ネット上を色々と探し回っていました。
今回、ここで紹介されていたバッチファイルを作成し、タスクスケジューラに登録しました。
電源管理などの設定を見直すなどの面倒をすることなく、すっきりと解決することができました。
ただ、バッチファイルを実行させるとコマンドプロンプトが表示されるので、ひと工夫しました。
VBSファイルを作成し、そのVBSファイルをタスクスケジューラに登録しました。
ここから作成方法。
Cドライブのルートに「wificonnect.bat」を作成したとします。
テキストファイルに以下を記述します。
ライブラリのwificonnect.batの部分は実際のバッチファイルの場所と名前を記入します。
Set ws = CreateObject(“Wscript.Shell”)
ws.run “cmd /c c:\wificonnect.bat”, vbhide
記述が終わったら、適当な名前を付けて拡張子を「vbs」にして保存します。
バッチファイルと同じ場所に保存します。
タスクスケジューラで「最上位の特権で実行する」で作成した「vbs」を登録します。
「最上位の特権で実行」設定すると、管理者として実行できます。
以上でステルスで実行できるようになりました。
最後になりますが、素晴らしいバッチファイルの作成方法をご教示いただき、ありがとうございました。
説明も図を交えて、とても分かりやすかったです。
非表示の対応まで実行されるとは、完全版といったご対応ですっきりですね!
vbhideのあたりがポイントのようですね。ご説明ありがとうございます。
また、お褒め頂きありがとうございます!お役に立てて良かったです!
この問題にずっと困っていました。
この記事で無事に解決しました。素晴らしい記事をありがとうございます。
コメントありがとうございます!
お役に立ててよかったです!