へっぽこヘタレシステム管理者の管理人です。
仕事の関係でネットワークのセグメントが異なる環境をいったり来たりする端末が出てきたので・・・
なんとか簡単にIPアドレスを環境に合わせて設定できる方法がないかネットでイロイロ調べてバッチファイルを作る方法が分かったので忘備録として掲載しておきます。
まず、下図のようなリストを【CSV】で作成します。
名前はとりあえず【ip_list.csv】としておきましょう。
メモ帳で開くと下の様になります。
#PClist,,,,,,,
hostname,IPsettei,DNSsettei,IPaddress,GW,mask,DNS1,DNS2
hostname1,static,static,192.168.1.10,192.168.1.1,255.255.255.0,192.168.1.254,192.168.1.253
hostname2,static,static,192.168.11.10,192.168.11.1,255.255.255.0,192.168.11.254,192.168.11.253
リストの内容ですが・・・
- 1:ホスト名
- 2:IPアドレスの設定が静的かどうか
- 3:DNSの設定が静的かどうか
- 4:IPアドレス
- 5:GW
- 6:サブネットマスク
- 7:DNS1
- 8:DNS2
という内容です。
次にバッチファイルを作成します。
バッチファイルの内容は次のとおりです。
@echo off
echo ************************************************
echo リストからホスト名に一致するIPアドレスを設定します
echo ************************************************
pause
echo ***********************
echo IPアドレスのリストを取得
echo ***********************
rem リストファイル(CSV)のパスを指定する
SET FILE_LIST=d:\ip_settei\ip_list.csv
SET FLG=0
rem リストを読み込み
rem ホスト名があった場合の処理
for /F "delims=(,) tokens=1-8" %%a in (%FILE_LIST%) do (
if %COMPUTERNAME%==%%a (
SET PCname=%%a
SET IPset=%%b
SET DNSset=%%c
SET IP=%%d
SET GW=%%e
SET MASK=%%f
SET DNS1=%%g
SET DNS2=%%h
SET FLG=1
)
)
pause
echo *******************
echo ホスト名の存在確認
echo *******************
if %FLG% == 0 (
echo **********************************
echo ホスト名がリストにありませんでした
echo **********************************
goto err
)
pause
echo ****************
echo IPアドレスの設定
echo ****************
if %IPset% == static (
netsh interface ipv4 set add name="イーサネット" source=static addr=%IP% mask=%MASK% gateway=%GW%
) else if %IPset% == dhcp (
netsh interface ipv4 set add name="イーサネット" source=dhcp
) else (
echo staticかdhcpを選択して下さい
goto err
)
pasuse
echo ************
echo DNSのの設定
echo ************
if %DNSset% == static (
netsh interface ipv4 set dns name="イーサネット" source=static addr=%DNS1% register=primary
netsh interface ipv4 add dns name="イーサネット" addr=%DNS2%
) else if %DNSset% == dhcp (
netsh interface ipv4 set dns name="イーサネット" source=dhcp
) else (
echo staticかdhcpを選択して下さい
goto err
)
:err
pause
exit
このままコピペして拡張子を【bat】にすればOKです。
リストのファイル名と絶対パスだけは合わせてください。
一つの処理毎に【pause】を入れることにより途中で止まった場合は、どこがおかしいか確認できます。
最終的に問題なく動けは【pause】は消しても問題ありません。



コメント