SKY-OUTPUT

メーカー子会社勤務のSEがガジェットレビューや仕事で学んだこと、ライフスタイルについて書くブログ。システム開発関係の記事では丁寧に解説していきます。最近はバッチばかり作ってる。

有線接続・無線接続を切替できるバッチ

職場でLANケーブルを着脱することが多く、アプリ等で簡単に切り替えられたらいいなと考えていました。そこで、バッチで有線接続と無線接続を切り替えられるネットワークアダプタ切替バッチを作成しました。ネットワークアダプタには優先度があります。有線(LANケーブル)と無線(Wi-Fi)の両方のネットワークに接続された状態の場合、有線接続を選択する設定がされております。これにより、LANケーブルを刺したままWi-Fi経由でネットワークを使用することが出来ません。そこでネットワークアダプタ切替バッチにより無理やり使用したい接続に変更します。

このバッチの強み

状況によってネットワークアダプタの優先度は変わるので、優先度に関係なく接続状態を変更できるのが本バッチの強みです。

このバッチの弱み

ネットワークアダプタを無効状態のままにする恐れがある

ネットワークアダプタを切り替えるのでなく、有効状態を変更しています。バッチを実行した後、全てのネットワークアダプタを有効状態にせずコマンドプロンプトを閉じてしまうと、ネットワークアダプタを無効状態のままにしてしまう恐れがあります。

管理者権限で実行する必要がある

ネットワークアダプタの有効状態を変更するには管理者権限が必要です。管理者権限で本バッチを実行しないと処理の実行に失敗します。

端末によってネットワークアダプタの名称が違うことがある

端末によってネットワークアダプタの名称が異なる場合があります。その場合はソースコードを修正し、使用するマシンや状況によってカスタマイズする必要があります。

ネットワークアダプタの確認手順

アダプターの設定の変更でネットワークアダプタを確認することが出来ます。

f:id:SKY-BLOG:20190214232848p:image

▲コントロール パネルネットワークとインターネットネットワーク接続 または コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更 で表示できます。

ソースコード

@echo off
setlocal

echo 使用するアダプタを選択してください。
echo イーサーネット:1
echo Wi-Fi         :2
echo すべて有効    :3
set /p p="> " If %p%==1 ( echo イーサネットを有効状態にします。 netsh interface set interface name="イーサネット" admin=enabled netsh interface set interface name="Wi-Fi" admin=disable ) else if %p%==2 ( echo Wi-Fiを有効状態にします。 netsh interface set interface name="イーサネット" admin=disable netsh interface set interface name="Wi-Fi" admin=enabled ) else if %p%==3 ( echo 全アダプタ有効状態にします。 netsh interface set interface name="イーサネット" admin=enabled netsh interface set interface name="Wi-Fi" admin=enabled ) pause exit

※マシン環境や状況によって選択肢とif文内の処理を変更・追加してください。

 

バッチ実行画面

バッチを管理者権限で実行すると、下記ウィンドウが表示されます。ここで使用するネットワークアダプタの数値を入力しEnterを入力することで、ネットワークアダプタの状態が切り替わります。

f:id:SKY-BLOG:20190214234743p:plain

ネットワークアダプタの優先順位を変えたいだけの場合

そもそも有線と無線の優先度を変えるだけで良いよって方もいると思います。有線と無線の優先度の変更方法は下記のとおりです。

1.ネットワークアダプタのプロパティを表示する

f:id:SKY-BLOG:20190214232848p:image 

▲優先度を変更したいネットワークアダプタを選択状態にし、右クリックしプロパティを選択します。

※私のPCの場合PC本体の無線LANと外付けUSB接続の無線LAN(5GHz帯対応)がある為、Wi-Fiが2つあります。

2.TCP/IPv4のプロパティを表示する

f:id:SKY-BLOG:20190226224936p:plain

▲インターネットプロトコルバージョン4(TCP/IPv4)を選択した状態でプロパティボタンを押します。

3.TCP/IP詳細設定画面を表示する

f:id:SKY-BLOG:20190226225102p:plain

▲全般タブを表示し、詳細設定ボタンを押します。

4.自動メトリックのチェックを外す

f:id:SKY-BLOG:20190226225224p:plain

5.インターフェイスメトリックに値を入力しOKボタンを押す

インターフェイスメトリックに入力できる値は1から100までです。値が小さいほど優先順位が高くなります。

f:id:SKY-BLOG:20190226225336p:plain

これで優先順位の変更は完了です。

エディターについて

今まではテキストエディター(メモ帳やサクラエディタ)で開発を行っていました。

最近では、VisualBatと呼ばれるフリーのバッチ開発用のエディターを使用しています。

f:id:SKY-BLOG:20190505201146p:plain

更新履歴

2019年2月14日:初版

2019年2月26日:「ネットワークアダプタの優先順位を変えたいだけの場合」を追記

2019年5月5日:「エディターについて」を追記

2019年5月6日:ソースコードにシンタックスハイライトを有効化

2019年5月13日:ソースコードにsetlocalの命令を追加