⚙️
WindowsのIP設定をサッと切り替える
概要
WindowsPCのキッティング作業などに使用できる
イーサネット、Wi-FiのIP設定をサッと切り替えるバッチを紹介する。
ちょっとだけIPの設定をいじりたいときに便利。
pc_ipv4_set.bat
pc_ipv4_set.bat
@echo off
setlocal enabledelayedexpansion
::管理者権限で実行しなかった場合、自動昇格する
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
echo 管理者権限が無いため、管理者権限で実行します
pause
@powershell start-process "%~0" -verb runas
exit
)
::設定対象の入力
set /p CONF="IP設定対象を入力して下さい(eth/wifi):"
if %CONF%==eth (
set CONF=イーサネット
) else if %CONF%==wifi (
set CONF=Wi-Fi
) else (
echo ===== error:「eth」or「wifi」を入力してください =====
pause
exit
)
::読み込むIP情報ファイルの入力
set /p FILE="使用するIP情報ファイル名を入力して下さい。(.txt不要):"
set n=0
for /f %%s in (%~dp0.\address\%FILE%.txt) do (
set ADDRESS[!n!]=%%s
set /a n=n+1
)
::IPアドレスのセット
set IP=%ADDRESS[0]%
::ネットマスクのセット
set MASK=%ADDRESS[1]%
::ゲートウェイのセット
set GATE=%ADDRESS[2]%
::DNS(プライマリ)のセット
set DNS1=%ADDRESS[3]%
::IPv4設定
netsh interface ipv4 set address ^
name=%CONF% ^
source=static ^
address="%IP%" ^
mask="%MASK%" ^
gateway="%GATE%"
netsh interface ipv4 set dns ^
name=%CONF% ^
source=static ^
address="%DNS1%" ^
register=non ^
validate=no
::以下オプション「セカンダリDNS、メトリック」
@REM ::DNS(セカンダリ)のセット
@REM set DNS2=%ADDRESS[4]%
@REM netsh interface ipv4 add dns ^
@REM name=%CONF% ^
@REM address="%DNS2%" ^
@REM index=2 ^
@REM validate=no
@REM netsh interface ipv4 set interface ^
@REM interface=%CONF% ^
@REM metric="25"
::終了時出力
echo ===== 固定IP設定 終了 =====
netsh interface ip show config name=%CONF%
pause
pc_dhcp_set.bat
pc_dhcp_set.bat
@echo off
::管理者権限で実行しなかった場合、自動昇格する
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
echo 管理者権限が無いため、管理者権限で実行します
pause
@powershell start-process "%~0" -verb runas
exit
)
::設定対象の入力
set /p CONF="設定対象を入力して下さい(eth/wifi):"
if %CONF%==eth (
set CONF=イーサネット
) else if %CONF%==wifi (
set CONF=Wi-Fi
) else (
echo ===== error:「eth」or「wifi」を入力してください =====
pause
exit
)
::DHCP設定
netsh interface ipv4 set address name=%CONF% source=dhcp
netsh interface ipv4 set dnsservers name=%CONF% source=dhcp
::終了時出力
echo ===== DHCP設定 終了 =====
netsh interface ip show config name=%CONF%
pause
使い方
1. 以下のようなフォルダ構成にする
.
├── address
│ ├── hogehoge.txt
│ ┆
│ └── hugahuga.txt
├── pc_dhcp_set.bat
└── pc_ipv4_set.bat
address
フォルダに設定したいIP情報ファイル名を作成する
2. hogehoge.txt
172.31.141.150 <--IPアドレス
255.255.0.0 <--サブネットマスク
172.31.141.254 <--デフォルトゲートウェイ
172.31.141.254 <--優先DNSサーバー
(172.31.141.253) <--代替DNSサーバー(あってもなくても良い)
pc_ipv4_set.bat
を実行する
3.
pc_dhcp_set.bat
を実行する
4. 補足
- バッチはフォルダ構成さえ守れば、ほとんどのパス上において正常に動作する。
-
pc_ipv4_set.bat
の::以下オプション「セカンダリDNS、メトリック」
以下のコメントを外して
代替DNSサーバーの設定やメトリックの設定も行うことができる。 - IP設定対象のNICを増やしたい場合は、「イーサネット、Wi-Fi」のような
NIC名のif分岐を作成すると増やすことが可能。
参考
Discussion