lisz-works

技術と興味の集合体

バッチファイルでIPを自動/固定、ついでにSymantecのON/OFFも切り替える

【スポンサーリンク】

プログラムのソースコード

業務でとあるアプリを使うときに、「LANの設定を変更しないといけない」という面倒な状況になりました。

なのでバッチファイルを叩いたら、

  1. そのバッチに準じた設定に変更したい
  2. 付随する設定を一緒に変更したい

ということを実現するために作成しました。

ということで、叩いたバッチに応じて、IPの自動/固定の切り替え、ついでにSymantecのON/OFFもするバッチファイルの作成です。

構成

前述の通り、2つのLAN構成・設定があります。

その1:普段通りの使用時

  1. IP:自動取得
  2. Symantec:ON

その2:アプリ使用時

  1. IP:固定IP
  2. 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バッチについては、コチラの記事を参照してください。

www.lisz-works.com

IP自動取得設定を実行するバッチ

やることは

  1. SymantecをONにする
  2. IPを自動取得にする
@echo off
rem symantec ON
call symantec.bat 1
rem IP:Auto
echo .\exec\IpAuto.bat | sudo

固定IP設定を実行するバッチ

やることは

  1. SymantecをOFFにする
  2. IPを固定IPにする
@echo off
rem symantec OFF
call symantec.bat 0
rem IP:Fixed
echo .\exec\FixedIP.bat | sudo

あとがき

いつも設定が面倒だったので、これでかなり楽ができるようになりました。

UACの設定的に、「実行してもいいですか?」ダイアログを、2つ「はい」しないといけないのが玉にキズですが……

いろいろ設定を開いてポチポチ設定……
とかするよりは、操作量的にかなりマシですね!

*1:LANコネクタの絵かと