0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WindowsのIP設定をサッと切り替える

Last updated at Posted at 2021-09-10

概要

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

2. address フォルダに設定したいIP情報ファイル名を作成する

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サーバー(あってもなくても良い)

3. pc_ipv4_set.bat を実行する

windows_bat_ipv4_1.png

windows_bat_ipv4_2.png

windows_bat_ipv4_3.png

windows_bat_ipv4_4.png

windows_bat_ipv4_5.png

4. pc_dhcp_set.bat を実行する

windows_bat_ipv4_6.png

windows_bat_ipv4_7.png

windows_bat_ipv4_8.png

windows_bat_ipv4_9.png

補足

  • バッチはフォルダ構成さえ守れば、ほとんどのパス上において正常に動作する。
  • pc_ipv4_set.bat::以下オプション「セカンダリDNS、メトリック」 以下のコメントを
    外して、代替DNSサーバーの設定やメトリックの設定も行うことができる。
  • IP設定対象のNICを増やしたい場合は、「イーサネット、Wi-Fi」のような
    NIC名のif分岐を作成すると増やすことが可能。

参考

0
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?