自宅PCのWiFiが切れたままになるので自動で蘇生するreWiFi.batを書いた話です。
#発端
朝、PCをチェックして電源はそのままにして出勤。
夜、帰ってくるとWifiが切れて繋がらないままになっている。
ということが最近起きていて困っていました。
ケーブルに問題があるのかと思い本体にWifiアダプタを直刺しして様子を見てみると、それでも繋がらなくなる。
Wifiを一度無効化して再度有効にすると接続ができる。
というわけで定期的に接続状態を監視して、切れてたら回復させるbatファイルを書きました。
#方法
ネットワークインターフェースを一度無効化して再度有効化します。
#reWiFi.batファイル
@echo off
rem チェック時間間隔を設定する(sec)
set interval=60
rem インターフェース名を設定 *netsh interface show interfaceで調べる
set "interfaceName=Wi-Fi"
rem 場所の移動する
cd /d "%~dp0"
rem 現在の状態を表示
netsh interface show interface "%interfaceName%"
:checking
echo [%date% %time%] Checking %interfaceName%...
netsh interface show interface %interfaceName% | find "接続状態: 接続" > nul
if ERRORLEVEL 1 goto notconnection
rem 時間をおいてループします
timeout /t %interval% > nul
goto checking
:notconnection
echo [%date% %time%] %interfaceName%は切断されているようです。回復処理を開始します。
rem ログに日時を保存
echo %date% %time%,disconnect! %interfaceName%>> log_reWiFi.txt
echo [%date% %time%] %interfaceName% を無効化して待機します。
netsh interface set interface "%interfaceName%" disable > nul
timeout /t 10 > nul
echo [%date% %time%] %interfaceName% を再起動します。
netsh interface set interface "%interfaceName%" enable > nul
timeout /t 20
goto checking
pause
#使用上の注意
##管理者権限
動作には管理者権限が必要です。
右クリック > 管理者として実行
でやるか、
.batファイルのショートカットを作り、
プロパティ > ショートカットタブ > 詳細設定
から
管理者として実行(R)
にチェックを入れておきます。
ダブルクリックで起動するときはこのショートカットからやると便利です。
##監視時間
とりあえず60秒にしてありますが、300秒(5分)とかでもいいかもしれません。
お好みで変更してください。
##インターフェース名
うちの環境ではWi-Fi
という名前でした。環境に合わせて変更してください。
C:\WINDOWS\system32>netsh interface show interface
Admin State State Type Interface Name
-------------------------------------------------------------------------
有効 切断 専用 イーサネット
有効 切断 専用 イーサネット 2
有効 接続 専用 Wi-Fi
コマンドはこんな感じでInterface Nameでてきます。
##その他の定期的実行方法
タイマー部分を削除し、batファイルをタスクスケジューラに登録して定期実行する、とかでもいいと思います。
##最後のpauseいらなくね?
なんかいれておきたくなるんですよね…エラーの時すぐウインドウ消えちゃうし。
#参考文献
参考にさせていただきました。ありがとうございます!
wifiを無効化して有効化するbat|14にゴー
http://blog.14nigo.net/2016/02/rebootwifibat.html
コア部分。
バッチファイルを常に「管理者として実行」する方法 - Windows - Project Group
https://www.projectgroup.info/tips/Windows/comm_0092.html
ショートカットを作ってそっちで設定しておく方法。
Windowsバッチファイルでping応答の違いで動作をかえる – OSAKANA TAROのメモ帳
https://blog.osakana.net/archives/5429
最初はpingを見て判断するやつを書いてましたがインターフェースのオンオフに変更。
#そもそもなんで切れるの?
わからん…なんも…