3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

WindowsPCのIPアドレスをコマンドプロンプト,バッチファイルで簡単設定

WindowsPCで現在のIPの設定をテキストに保存・読み込みする ではIP設定をnetshをつかってエクスポート・インポートする方法を書きましたが、今回は netsh コマンドで手動でIPアドレス情報を設定する方法をまとめてみました。

コマンドプロンプトからIPアドレスサブネットマスクデフォルトゲートウェイDNSサーバを設定するには、下記のように設定します。

IPアドレスの設定

netsh interface ip set add name="ローカル エリア接続" source=static addr=192.168.0.10 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1

プライマリDNSサーバの設定

netsh interface ip set dns name="ローカル エリア接続" source=static addr=192.168.0.2 register=non

セカンダリDNSサーバの設定

netsh interface ip add dns name="ローカル エリア接続" addr=192.168.0.3 index=2

DHCPにするには、 source=static を source=dhcp にします。

次にバッチファイルです。変数を使うことで使い回しがしやすいようしてるだけです。

@echo off

 

rem ネットワークアダプタ

set Ntname="ローカル エリア接続 2"

rem 固定で割当てるIPアドレス

set Ipadd=192.168.0.10

rem サブネットマスク

set Subnet=255.255.255.0

rem デフォルトゲートウェイ

set Dfgy=192.168.0.1

rem DNSサーバ1

set DnsSv1=192.168.0.1

rem DNSサーバ2

set DnsSv2=192.168.0.2

echo 固定IPアドレス設定中。しばらくお待ちください...

rem IPアドレス,サブネットマスクデフォルトゲートウェイ設定

netsh interface ip set add name=%Ntname% source=static addr=%Ipadd% mask=%Subnet% gateway=%Dfgy% gwmetric=1

rem DNSサーバプライマリを設定

netsh interface ip set dns name=%Ntname% source=static addr=%DnsSv1% register=non

rem DNSサーバセカンダリを設定

netsh interface ip add dns name=%Ntname% addr=%DnsSv2% index=2

 

rem DHCPにしたいときは下記のようにします。

rem netsh interface ip set dns name=%Ntname% source=dhcp register=non

rem netsh interface ip set add name=%Ntname% source=dhcp

 

echo 固定IPアドレスを設定しました。何かキーを押して終了してください。

pause

さて、ここで面倒なのは netsh の指定時にネットワークアダプタ名(ネットワークインターフェイス名、NIC名)を指定しないといけないということです。

これが環境によって違ったり複数NICあったりする場合もするんですよね。

ある程度エンドユーザが設定しやすくするにはネットワークアダプタ名を自動で取得するように、また複数あるときはどのNICを使うか選べるようにしたいですよね。

ということで、それを VBScript で実現してみました。

詳しくは 次の記事 に書きたいと思います。

参考:

netsh interface ipコマンドでIPアドレスを設定する - 管理者必見! ネットワーク・コマンド集:ITpro

IPアドレスの設定: