さて、システム管理者をやっていた時代に、よくL2スイッチやL3スイッチの設定変更をするために、管理用のIPで接続するために、PCのネットワーク設定を変更することが多々ありました。
当初は、手動でいちいちネットワーク設定を変更していましたが・・・
その内面倒くさくなり、なんとかバッチファイルで設定変更できないか、調べた挙句になんとか、バッチファイルを作成できましたので、その内容を掲載します。
その1:有線LANと無線LANを切り替えるバッチファイル
まずは、コントロールパネルのネットワーク接続から、ネットワークカードの設定名を控えます。
管理人のパソコンの場合は・・・
- 有線LAN:イーサネット
- 無線LAN:Wi-Fi
となっていました。
次にバッチファイルを作成します・・・
下のコードをメモ帳にコピペして、拡張子を【bat】にして保存します。
@echo off
rem 管理者として実行
cd /d %~dp0
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
if NOT "%LEVEL%"=="High" (
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process %~f0 -Verb runas"
exit
)
echo ***********MENU***********
echo Set IP Address
echo [1]:有線LAN DHCP
echo [2]:無線LAN DHCP
echo *************************
set /p NUM="番号を選択してください。"
IF "%NUM%"=="1" goto yusen
IF "%NUM%"=="2" goto musen
:yusen
netsh interface set interface "Wi-Fi" disabled
netsh interface set interface "イーサネット" enabled
SET Int="イーサネット"
netsh interface ip set add name=%Int% DHCP
netsh interface ip set dns name=%Int% DHCP
goto end
:musen
netsh interface set interface "イーサネット" disabled
netsh interface set interface "Wi-Fi" enabled
SET Int="Wi-Fi"
netsh interface ip set add name=%Int% DHCP
netsh interface ip set dns name=%Int% DHCP
goto end
:end
これで、有線LANと無線LANをバッチファイルで簡単に切り替えできます。
その2:固定IPをバッチファイルで設定する
次に、固定IPを振る方法です。
同様に、下のコードをメモ帳にコピペして、拡張子を【bat】に変更して保存してください。
@echo off
rem 管理者として実行
cd /d %~dp0
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
if NOT "%LEVEL%"=="High" (
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process %~f0 -Verb runas"
exit
)
echo ***********MENU***********
echo Set IP Address
echo [1]:有線LAN 固定IP
echo [2]:有線LAN DHCP
echo [3]:無線LAN 固定IP
echo [4]:無線LAN DHCP
echo *************************
set /p NUM="番号を選択してください。"
IF "%NUM%"=="1" goto yusen_kotei
IF "%NUM%"=="2" goto yusen_dhcp
IF "%NUM%"=="3" goto musen_kotei
IF "%NUM%"=="4" goto musen_dhcp
rem 有線LAN 固定IP
:yusen_kotei
netsh interface set interface "Wi-Fi" disabled
netsh interface set interface "イーサネット" enabled
SET Int="イーサネット"
rem ここから変更する
SET IP="192.168.1.5"
SET MASK="255.255.255.0"
SET GW="192.168.1.1"
SET DNS1="192.168.1.1"
SET DNS2="192.168.1.2"
rem ここまで
netsh interface ip set add name=%Int% static addr=%IP% mask=%MASK% gateway=%GW%
netsh interface ip set dns name=%Int% static addr=%DNS1% primary
netsh interface ip add dns name=%Int% addr=%DNS2%
goto end
rem 有線LAN DHCP
:yusen_dhcp
netsh interface set interface "Wi-Fi" disabled
netsh interface set interface "イーサネット" enabled
SET Int="イーサネット"
netsh interface ip set add name=%Int% DHCP
netsh interface ip set dns name=%Int% DHCP
goto end
rem 無線LAN 固定IP
:musen_kotei
netsh interface set interface "イーサネット" disabled
netsh interface set interface "Wi-Fi" enabled
SET Int="Wi-Fi"
rem ここから変更する
SET IP="192.168.1.5"
SET MASK="255.255.0.0"
SET GW="192.168.1.1"
SET DNS1="192.168.1.1"
SET DNS2="192.168.1.2"
rem ここまで
netsh interface ip set add name=%Int% static addr=%IP% mask=%MASK% gateway=%GW%
netsh interface ip set dns name=%Int% static addr=%DNS1% primary
netsh interface ip add dns name=%Int% addr=%DNS2%
goto end
:musen_dhcp
netsh interface set interface "イーサネット" disabled
netsh interface set interface "Wi-Fi" enabled
SET Int="Wi-Fi"
netsh interface ip set add name=%Int% DHCP
netsh interface ip set dns name=%Int% DHCP
goto end
:end
固定IPの部分は、適宜必要なものに変更して使ってください。
その3:バッチファイルを管理者権限で実行する
これらのバッチファイルは、通常であれば管理者権限での実行が必要です。
毎回右クリックで【管理者として実行】を選択しても良いのですが、毎回管理者として実行する方法がありましたので紹介します。
前述のコードにはすでに記載していありますが・・・
@echo off
rem 管理者として実行
cd /d %~dp0
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
if NOT "%LEVEL%"=="High" (
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process %~f0 -Verb runas"
exit
)
rem 実行したいコードを記述
バッチファイルの冒頭部分に、上記のコードを記述する事により、常に管理者として実行することが可能となります。
まとめ
Windowsのネットワーク設定はバッチファイルでもできる
バッチファイルを作っておけば面倒なIPアドレスの設定も楽々
有線LANと無線LANの切り替えもできる
バッチファイルを常に管理者権限で実行することもできる
コメント