業務でとあるアプリを使うときに、「LANの設定を変更しないといけない」という面倒な状況になりました。
なのでバッチファイルを叩いたら、
- そのバッチに準じた設定に変更したい
- 付随する設定を一緒に変更したい
ということを実現するために作成しました。
ということで、叩いたバッチに応じて、IPの自動/固定の切り替え、ついでにSymantecのON/OFFもするバッチファイルの作成です。
構成
前述の通り、2つのLAN構成・設定があります。
その1:普段通りの使用時
- IP:自動取得
- Symantec:ON
その2:アプリ使用時
- IP:固定IP
- Symantec:OFF
IPを設定するバッチファイル
まずはIPを設定するバッチファイルを作ります。
インターフェース名を調べる
スタートメニューを開き、設定(歯車マーク)ボタンで、Windowsの設定画面を開きます。
「ネットワークとインターネット」を選択。
中央上部に「ネットワークの状態」という図がありますね。
これの真ん中の四角いやつ*1の、下に名前が書かれています。
IP自動取得 設定バッチ
IPの自動取得をするためのバッチ「IpAuto.bat」を作成します。
IFNAMEには、先程調べたインターフェース名を入力します。
REM # IP自動取得 set IFNAME="調べたインターフェース名" netsh interface ipv4 set address name=%IFNAME% dhcp netsh interface ipv4 set dnsservers name=%IFNAME% dhcp
固定IP 設定バッチ
固定IPを設定するバッチ「FixedIP.bat」を作成します。
コチラもIFNAMEには、先程調べたインターフェース名を入力します。
REM # 固定IP set IFNAME="調べたインターフェース名" set IPADDR=192.168.0.100 set MASK=255.255.255.0 netsh interface ipv4 set add name=%IFNAME% source=static addr=%IPADDR% mask=%MASK%
SymantecをON/OFFするバッチ
業務用のPCは、Symantec Endpoint Protectionが入っています。
コレを設定に応じてON/OFFしたいので、操作するバッチファイル「symantec.bat」を作成します。
@echo off rem ------------------------ rem SymantecをON/OFFします。 rem arg1: ON/OFFフラグ rem 1: ON rem 2: OFF rem 以外: 無視 rem ------------------------ rem %1 = arg1 if %1 equ 1 ( start smc -start ) else if %1 equ 0 ( start smc -stop )
「%1」というのが、バッチファイルに渡した引数がセットされる変数です。
バッチを設定するとき、引数を設定することで、ON/OFFを制御します。
具体的にはこんな感じ。
> symantec 0 ←これでOFF > symantec 1 ←これでON
実行用のバッチ
さて、サブのバッチファイルはこれで揃いました。
次に実行用のバッチファイルを作っていきます。
ちなみに実際にIPを設定するバッチファイルは「exec」というフォルダを作成し、その中にまとめています。
sudoバッチを使えるようにする
sudoバッチについては、コチラの記事を参照してください。
IP自動取得設定を実行するバッチ
やることは
- SymantecをONにする
- IPを自動取得にする
@echo off rem symantec ON call symantec.bat 1 rem IP:Auto echo .\exec\IpAuto.bat | sudo
固定IP設定を実行するバッチ
やることは
- SymantecをOFFにする
- IPを固定IPにする
@echo off rem symantec OFF call symantec.bat 0 rem IP:Fixed echo .\exec\FixedIP.bat | sudo
あとがき
いつも設定が面倒だったので、これでかなり楽ができるようになりました。
UACの設定的に、「実行してもいいですか?」ダイアログを、2つ「はい」しないといけないのが玉にキズですが……
いろいろ設定を開いてポチポチ設定……
とかするよりは、操作量的にかなりマシですね!
*1:LANコネクタの絵かと