ネットワークの仕事をしていると複数の通信回線を使用することが多いので、有線LANと無線LANとで通信する回線を分けるようにしています。
この環境では、パソコンは基本的に有線LANを優先して通信します。
そのため、有線LANで通信したい場合は有線・無線の両方とも有効にしていても問題ないのですが、無線LAN側で通信したい場合はLANケーブルを抜くか、有線LANのインターフェイスを無効化する必要があります。
毎度毎度LANケーブルを抜くのは手間がかかり、さりとてLANインターフェイスの無効化・有効化は面倒なのでワンクリックで切り替えられるバッチを作って対応することにしました。
インターフェイスを無効化するコマンドを作ろう
パソコンが認識しているネットワークインターフェイスを確認するにはnetshを使います。
netsh interface show interface
Windows 10だと省略実行(netsh inter show inter)も可能ですね。
有線LAN(画像だとイーサネット)を無効化するには次のコマンドを実行します。
netsh interface set interface "イーサネット" disable
有効化したい場合は最後をenableに変更すればokです。
コマンドを使って何度か無効化・有効化して、ちゃんと動作することを確認します。
バッチファイル化してワンクリック実行できるようにする
メモ帳を起動し、先ほどのコマンドをコピペして保存します。
拡張子を「.bat」として保存し、バッチファイルとします。
作成したバッチファイルを右クリックして「管理者として実行」して動作確認します。
ところが、この方法だとうまくいかない場合があります。
うまく動作しない場合は文字コードを確認しよう
コマンドプロンプトでは意図したとおりに無効化・有効化できるものの、同じ内容を書いたバッチファイルでは切り替えられないとなると、ファイルの文字コードが足を引っ張っている可能性があります。
作成したバッチファイルを右クリックして「編集」します。
netshの次の行に「pause」と入力して上書き保存します。
▲有効化のファイルを編集しています(^▽^;)
その後、バッチファイルを改めて「管理者として実行」した結果がコチラ。
「"イーサネット"」と日本語で入力した部分が文字化けしていることが分かります。このためにバッチファイルが正常に動作しなかったのですね。
もう一度バッチファイルを右クリックして「編集」し、先ほど追加した「pause」の行を削除したら「名前を付けて保存」します。
保存ダイアログで文字コードを「ANSI」に変更して保存します(ファイル名はそのまま上書きすればok)。
これでバッチファイルを「管理者として実行」するだけで有線LANの有効・無効を切り替えることができるようになると思います。
アクセスしやすいようにスタートメニュー化しよう
バッチファイルをデスクトップやフォルダーに入れておいても良いですが、よりスムーズにバッチファイルにアクセスできるように、スタートメニューの中に入れてみます。
ところが、バッチファイル自体はスタートメニューに入れることができません。
そのバッチファイルへの「ショートカット」であればスタートメニューに入れることができます。ただし、そのままではダメ(スタートメニューにピン留めするメニューが表示されない)なので、ひと工夫する必要があります。
ショートカットのプロパティを開き、リンク先の先頭に次の文字列を追記します。
リンク先:C:¥Windows¥System32¥cmd.exe(半角スペース)
こうすることで「ショートカットをスタートメニューにピン留めする」してバッチファイルを実行することができるようになります。
アプリ化もいいけどバッチでも十分(´艸`*)
文字コードやらショートカットやらアレコレ操作するくらいならプログラム言語を使ってアプリ化したほうが手っ取り早いかなぁ~とも思いましたが、やっぱり今回くらいの操作であればバッチファイルで十分ですね(^▽^;)