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
さて、ここで面倒なのは netsh の指定時にネットワークアダプタ名(ネットワークインターフェイス名、NIC名)を指定しないといけないということです。
これが環境によって違ったり複数NICあったりする場合もするんですよね。
ある程度エンドユーザが設定しやすくするにはネットワークアダプタ名を自動で取得するように、また複数あるときはどのNICを使うか選べるようにしたいですよね。
ということで、それを VBScript で実現してみました。
詳しくは 次の記事 に書きたいと思います。
参考:
netsh interface ipコマンドでIPアドレスを設定する - 管理者必見! ネットワーク・コマンド集:ITpro