コマンドプロンプトからIPアドレスを変更する
はじめに
IPアドレスをいちいちコントロールパネルから変更するのが面倒で batを作成した際に詰まったこと等、己の後生のために書き残す。
使用するコマンド
netshコマンドを使用 出来ることは以下の通り。 今回使うのはset addressのみ
C:\Windows\system32>netsh interface ip set 使用できるコマンドは次のとおりです: このコンテキストのコマンド: set address - インターフェイスに IP アドレスまたはデフォルト ゲートウェイを設定します。 set compartment - コンパートメント構成パラメーターを変更します。 set dnsservers - DNS サーバーのモードおよびアドレスを設定します。 set dynamicportrange - 動的ポート割り当てに使用するポートの範囲を変更します。 set global - グローバル構成一般パラメーターを変更します。 set interface - IP のインターフェイス構成パラメーターを変更します。 set neighbors - 近隣アドレスを設定します。 set route - ルートのパラメーターを変更します。 set subinterface - サブインターフェイス構成パラメーターを変更します。 set winsservers - WINS サーバーのモードおよびアドレスを設定します。 C:\Windows\system32>
使用例
[ ]内は設定したい内容を任意で記入
固定のIPを設定する場合
DNS部の設定は未検証。
netsh interface ip set address [インターフェース名] source=static address=[設定IPアドレス] mask=[サブネットマスク] gateway=[ゲートウェイ]
DHCPを設定する場合
netsh interface ip set address [インターフェース名] dhcp netsh interface ip set dns [インターフェース名] dhcp
インターフェースについて
Windows7とwindows10でデフォルトのインターフェース名が異なっているので注意。 追加でNICを増やしたり、仮想NICを設定している場合も同様です。 作業時はipconfigで作業対象のインターフェースを確認すること。 (Windows8は検証してません)
- Windpws7の場合、
ローカル エリア接続
イーサネット アダプター ローカル エリア接続: 接続固有の DNS サフィックス . . . . .: IPv4 アドレス . . . . . . . . . . . .: XXX.XXX.XXX.XXX サブネット マスク . . . . . . . . . .: XXX.XXX.XXX.XXX デフォルト ゲートウェイ . . . . . . .: XXX.XXX.XXX.XXX
- Windpws10の場合、
アダプター イーサネット
イーサネット アダプター イーサネット : 接続固有の DNS サフィックス . . . . .: IPv4 アドレス . . . . . . . . . . . .: XXX.XXX.XXX.XXX サブネット マスク . . . . . . . . . .: XXX.XXX.XXX.XXX デフォルト ゲートウェイ . . . . . . .: XXX.XXX.XXX.XXX
困った例
連続で静的IPを設定したり、動的IPを設定したりすると 以下のようなメッセージが表示される場合はある。 ただし、コントロールパネルから実際の設定を見るとDHCPになっておらず 静的IPが残ったままになってしまう。 正直いって、原因がわからなかったがインターフェースの落とし上げを入れることによってこのメッセージが表示される事象は起きなくなりました。
C:\Windows\system32>netsh interface ip set address "ローカル エリア接続" dhcp DHCP はこのインターフェイスで既に有効です。
以下、有効・無効のコマンド
#無効 netsh interface set interface [インターフェース名] disable #有効 netsh interface set interface [インターフェース名] enable