制限付きアクセスから回復するバッチを作った


突然ですが、以下の状態って結構あったりしますか?

ないですか。そうですよねー。
日本だとこんな風にハングりませんよね。
おい、ここグアテマラ、バングラディシュのWiFiか?って感じになりませんか?
※大好きな国です。

こんな状態を解決するバッチを作ってみました。

wlan.bat
@echo off

rem ---------------------------------
rem 作業ディレクトリ
set DIRPATH=C:\wlan

rem ping先アドレス
set PINGIP=<任意のどっか>

rem SSIDの指定
set SSID=<自分のSSID>

rem WLANインターフェィス名の指定
set WLANIF="ワイヤレス ネットワーク接続"

rem 実行ログ吐き出し有無(0無効or1有効)
set LOG=1
rem ---------------------------------

cd %DIRPATH%

rem 疎通テスト
ping -n 1 %PINGIP%

if ERRORLEVEL 1 (
    netsh wlan show interface > wlan.txt
    for /f "delims=" %%a in (wlan.txt) do (
        if "%%a"=="    SSID                   : %SSID%" (
            netsh int set int %WLANIF% disable
            netsh int set int %WLANIF% enable
            if "%LOG%" == "1" (
                    echo 実行しました。%date% %time% >> log.log
            )
        exit 0
        )
    )
)

exit 0

やってることはシンプルで何らかの原因でハングっている状態ならば
無線IFを無効、有効にするだけです。
つまり、無線IFを無効、有効で直る症状でのみ有効なバッチです。

あとはWindowsのタスクスケジューラに登録すればOK。

登録は以下を参考に
https://qiita.com/Richard_Roe/items/44e16841f16ee40c6113