Windows バッチファイル

【Windows】IPアドレスをバッチファイルで自動変更する方法

2021年9月2日

はじめに

IPアドレスを変更する場合はコントロールパネルを開き、ネットワーク接続を開いて変更するのが一般的ですがLANケーブルやWi-Fiなど変更する度にいちいち開くのはとても面倒です。

また、毎回同じIPアドレスに変更する場合は覚えておく必要もあるので手間が倍増することになります。

コントロールパネルからIPアドレスを変更

そこでIPアドレスを自動的に変更するバッチファイルの作成方法をご紹介します。

IPアドレス変更バッチファイル

DHCPで自動取得に設定する場合

REM 管理者権限でなければ管理者実行する
whoami /priv | find "SeDebugPrivilege" > nul
IF %errorlevel% neq 0 (
  @powershell start-process %~0 -verb runas
  ECHO 管理者権限がありません。管理者権限で実行します
  EXIT
)
ECHO 管理者権限に自動で昇格できました。

REM インターフェース名を設定
SET interface_name=Wi-Fi

REM IP アドレスを DHCP に設定する
netsh interface ipv4 set address name="%interface_name%" source=dhcp

REM DNS サーバーの設定を DHCP に設定します。
netsh interface ipv4 set dnsservers name="%interface_name%" source=dhcp

PAUSE

IPアドレスを指定して設定する場合

REM 管理者権限でなければ管理者実行する
whoami /priv | find "SeDebugPrivilege" > nul
IF %errorlevel% neq 0 (
  @powershell start-process %~0 -verb runas
  ECHO 管理者権限がありません。管理者権限で実行します
  EXIT
)
ECHO 管理者権限に自動で昇格できました。

REM インターフェース名を設定
SET interface_name=Wi-Fi

REM IPアドレス情報を設定
SET ip_address=192.168.0.100
SET subnet_mask=255.255.255.0
SET default_gateway=192.168.0.1

REM IP アドレスを変更する
netsh interface ipv4 set add name="%interface_name%" source=static addr="%ip_address%" mask="%subnet_mask%" gateway="%default_gateway%" gwmetric=1

REM DNSサーバー情報を設定します。
SET dns_server1=8.8.8.8
SET dns_server2=8.8.4.4
SET dns_server3=1.1.1.1

netsh interface ipv4 set dns name="%interface_name%" source=static addr="%dns_server1%" register=non validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server2%" index=2 validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server3%" index=3 validate=no

PAUSE

バッチファイルの解説

管理者として実行(1~8行目)

IPアドレスをバッチファイルから変更する場合は管理者権限が必要なため、自動的に管理者権限で実行するように切り替えます。

REM 管理者権限でなければ管理者実行する
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
  @powershell start-process %~0 -verb runas
  echo 管理者権限がありません。管理者権限で実行します
  exit
)
echo 管理者権限に自動で昇格できました。

バッチファイルを実行しているユーザーに管理者権限が付与されていないとエラーになります

インターフェイス名の設定(11行目)

IPアドレスを変更するインターフェイスをここで指定しています。

REM インターフェース名を設定
set interface_name=Wi-Fi

インターフェイス名はコントロールパネルのネットワーク接続から確認します。

インターフェイス名はコントロールパネルから確認

IPアドレスとDNSをDHCPに設定(13~17行目)

10行目で指定したインターフェイス名に対してIPアドレスとDNSをDHCPに設定する記述が下記になります。

REM IP アドレスを DHCP に設定する
netsh interface ipv4 set address name="%interface_name%" source=dhcp

REM DNS サーバーの設定を DHCP に設定します。
netsh interface ipv4 set dnsservers name="%interface_name%" source=dhcp

IPアドレスを指定(13~19行目)

14~16行目でIPアドレスやサブネットマスク、デフォルトゲートウェイを指定します。

REM IPアドレス情報を設定
SET ip_address=192.168.0.100
SET subnet_mask=255.255.255.0
SET default_gateway=192.168.0.1

指定されたIPアドレスなどは下記のコマンドで設定が 反映させます。

REM IP アドレスを変更する
netsh interface ipv4 set add name="%interface_name%" source=static addr="%ip_address%" mask="%subnet_mask%" gateway="%default_gateway%" gwmetric=1

DNSアドレスを指定(21~28行目)

21~24行目でDNSアドレスを指定します。

REM DNSサーバー情報を設定します。
SET dns_server1=8.8.8.8
SET dns_server2=8.8.4.4
SET dns_server3=1.1.1.1

指定されたDNSアドレスを下記のコマンドで設定が反映させます。

netsh interface ipv4 set dns name="%interface_name%" source=static addr="%dns_server1%" register=non validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server2%" index=2 validate=no
netsh interface ipv4 add dns name="%interface_name%" addr="%dns_server3%" index=3 validate=no

DNSが1つしかない場合は [dns_server2] 以降を削除して問題ありません。

Windows 10完全ガイド 基本操作+疑問・困った解決+便利ワザ
操作方法はこれにお任せ!便利技も収録されているガイド本

Rakuten

Amazon

Yahoo!ショッピング

 

  • この記事を書いた人
  • 最新記事

かじ

マッチングアプリで出会った女性と結婚をした埼玉県在住の新婚さん。 ガジェット好きではあるけど子どもができたため下火に。。。 社内SEとしてプログラミングなど自分の知識と経験をいろんな人に役立ってもらえるように記事を更新します!

-Windows, バッチファイル
-, , ,