起動時にオンラインにならないときがある
SIMが挿せるWindows10のタブレットを設定していました。再起動はシャットダウンを繰り返しているうちに、起動時に自動的にオンラインになるはずのLTEが切断済みのままオンラインになってくれないことがありました。
環境
- SIMはauのLTE NET for DATA(au.au-net.ne.jp)
- HPのWindowsタブレット
- Windows 10 Pro v2004 64bit
機内モードとネットワークアダプタの無効・有効で直るけど...。
とりあえず、機内モードのOFFとONをすればオンラインになりました。
それとは別にネットワークアダプタの携帯電話を無効・有効でも同じようにオンライン状態になりました。
しかし、これを起動の度に行うのは超めんどくさいです。
よって、これをバッチファイルにして行うようにしようと思ったのですが、管理者として実行しないとダメで、このタブレットの使用者は一般ユーザーなので、バッチファイルを実行する権限がありません。
タスクスケジューラに登録して起動時に特権ユーザーで実行させるという方法もあるのですが、正常にオンライン状態で起動できる場合もあるので、毎回無理矢理実行するのも何だか嫌だな~と思いました。
管理者権限が不要の方法があった!
起動時にユーザーがオフラインで困ったときだけ自分でどうにかできるような方法が無いかと考えたとき、一つ方法が見つかりました。
- 携帯ネットワークのON/OFFをコマンドで実行
これを行うコマンドは管理者権限が不要で、一般ユーザーでも実行できます。これをバッチファイルにしてユーザーのデスクトップに置いておけば、ユーザー自身で解決できます。
携帯ネットワークを切断するコマンド
netsh mbn disconnect interface="携帯電話"
携帯ネットワークを接続するコマンド
このコマンドはプロファイル名の指定が必要です。
netsh mbn connect interface="携帯電話" connmode=name name=プロファイル名
プロファイル名を調べるコマンド
APN設定には「au」だとか「LTE NET」とか名前を付けていますが、プロファイル名はまったく別物の名前が付いています。よくわからない英数字の羅列になっていますが、これが接続時のコマンドに必要となります。
netsh mbn show profile
プロファイルの詳細を確認するコマンド
上記の英数の羅列ではプロファイル名と言われても、特に複数ある場合は現在使用中のプロファイルと一致しているものなのかわかならいので、ここで中身を確認します。
netsh mbn show profile name=プロファイル名
ちなみに、ここで表示されるAPNプロファイルの実体であるXMLが保存されている場所は以下となります。ここにあるXMLファイルを開くことでもプロファイルの詳細を確認できます。
- C:\ProgramData\Microsoft\WwanSvc\Profiles
XMLのファイル名がプロファイルの名前と似ていますが、全く別物で中に記載してあるプロファイルの名前を使用します。
これらのコマンドを組合せてバッチファイルにしたらうまくいきました。
機内モードのOFF/ONをさせればいいのですが、そんな簡単なことを説明してもできない方がいらっしゃるので、「LTE再起動.bat」とか「携帯ネットワークがオフラインで困ったとき.bat」みたいな名前でデスクトップに置いておけば説明不要で直感的に使えるかと思います。
バッチファイルのソース
このバッチファイルは登録されているAPN設定が一つしかないのが前提で作っています。複数登録がある場合は一番上に表示されるAPN番号を取得して、携帯電話の接続を実行します。また、APN番号が起動の度に変更されるので、変更されても現在のAPN番号を取得して実行するようにしています。
@echo off @setlocal enabledelayedexpansion echo. echo LTE接続をリセットします。 echo. echo "携帯電話"を無効化しています。 netsh mbn disconnect interface="携帯電話" echo プロファイルを調べています。 netsh mbn show profile for /f "tokens=1,2* usebackq delims=:" %%i in (`netsh mbn show profile ^| findstr /r /n "." ^| findstr /r "4:"`) do @set PROFILE=%%j rem 余計なスペースを削除 call :Trim !PROFILE! echo. echo プロファイル"!PROFILE!"を取得しました。 echo. echo アクセスポイント名を調べています。 echo. netsh mbn show profile name=!PROFILE! | findstr "アクセス ポイント名" echo. echo プロファイル"%PROFILE%"を使用して"携帯電話"を有効化しています。 timeout /T 5 /nobreak >nul netsh mbn connect interface="携帯電話" connmode=name name=!PROFILE! echo LTE接続のリセットが完了しました。 echo. echo 接続が復旧しない場合は"機内モード"のオン/オフを試してください。 echo. goto End :End endlocal pause exit :Trim set PROFILE=%*