ネットワーク環境が不安定な場合や、定期的に自動接続を確認したい環境では、ネットワークの状態を監視して異常時に自動で再接続を試みるバッチファイルが役立ちます。本記事では、pingコマンドを使って接続状況をチェックし、問題があればネットワークアダプターを再起動する方法をご紹介します。
ネットワークの接続を監視するバッチファイルの基本構成
まず、一定間隔でpingを実行し、接続の有無を確認します。pingに失敗した場合は、ネットワークアダプターの再接続処理に移ります。
@echo off
set TARGET=8.8.8.8
set RETRIES=3
set INTERVAL=60
:LOOP
ping -n 2 %TARGET% | find "TTL=" >nul
if errorlevel 1 (
echo [%date% %time%] 接続異常を検知しました。
call :RECONNECT
) else (
echo [%date% %time%] ネットワークは正常です。
)
timeout /t %INTERVAL% /nobreak >nul
goto LOOP
:RECONNECT
echo [%date% %time%] ネットワークアダプターを再接続します。
netsh interface set interface "イーサネット" admin=disable
timeout /t 5 /nobreak >nul
netsh interface set interface "イーサネット" admin=enable
timeout /t 10 /nobreak >nul
echo [%date% %time%] 再接続を完了しました。
exit /b
set TARGET=8.8.8.8
GoogleのDNSサーバーを対象にしています。必要に応じて、社内のルーターやゲートウェイに変更可能です。
ping -n 2
2回だけ試行して応答があるかを確認します。応答がなければ異常と判断します。
netsh interface set interface
ネットワークアダプターを一度無効にし、再度有効にすることで再接続を試みます。
“イーサネット”
接続名は実際の環境に合わせて置き換えてください。netsh interface show interfaceで一覧を確認できます。
実行上の注意点
管理者権限で実行が必要です。
ネットワークアダプターの操作には管理者権限が求められるため、右クリックして「管理者として実行」してください。
ループ処理により常駐動作します。
スクリプトをタスクスケジューラに登録して、ログイン時に自動で開始するのもおすすめです。
「Wi-Fi」接続の場合の名称に注意
接続名に半角スペースが含まれることが多いため、全体をダブルクォートで囲む必要があります。
まとめ
このようなバッチファイルを使うことで、ネットワークの自動復旧を実現できます。自宅や業務環境で通信が不安定な場合などに導入を検討してみてください。必要に応じてログファイルへの出力や通知処理の追加も可能です。