Help us understand the problem. What is going on with this article?

接続が切れたWiFiアダプタを自動でオンオフして再接続するバッチファイル「reWiFi.bat」

More than 1 year has passed since last update.

rewifi.png
自宅PCのWiFiが切れたままになるので自動で蘇生するreWiFi.batを書いた話です。

発端

朝、PCをチェックして電源はそのままにして出勤。
夜、帰ってくるとWifiが切れて繋がらないままになっている。
ということが最近起きていて困っていました。

ケーブルに問題があるのかと思い本体にWifiアダプタを直刺しして様子を見てみると、それでも繋がらなくなる。
Wifiを一度無効化して再度有効にすると接続ができる。

というわけで定期的に接続状態を監視して、切れてたら回復させるbatファイルを書きました。

方法

ネットワークインターフェースを一度無効化して再度有効化します。

reWiFi.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を見て判断するやつを書いてましたがインターフェースのオンオフに変更。

そもそもなんで切れるの?

わからん…なんも…

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away