「netsh」コマンドでTCP/IPのパラメータを設定する【Windows OS】:Tech TIPS
Windows OSでTCP/IPなどのネットワーク関係のパラメータの設定をコマンドプロンプトから行うには「netsh」コマンドが利用できる。IPv4アドレスを設定するには「netsh int ip set addr 〜」、DNSサーバなら「netsh int ip set/add dns 〜」と実行すればよい。netshコマンドを活用すれば、ネットワーク関連の設定をバッチファイルなどで自動実行できる。
対象OS:Windows 10/11、Windows Server 2012/2012 R2/2016/2019/2022
Windows OSでIPアドレスをいちいち手動で設定したくない!
例えばWindows PCを何台もセットアップする際、いちいち「設定」アプリや「コントロールパネル」などのGUIでIPアドレスを設定するのは面倒だ。誤ったIPアドレスを入力する可能性だってある。
このような場合、コマンドラインでIPアドレスを設定できれば、それをバッチファイルなどに記述して自動実行しやすい。その方がGUIよりずっと効率的だ。
Windows OSでは「netsh」という標準装備のコマンドラインコマンドで、TCP/IPパラメータの設定や確認が可能だ。本Tech TIPSでは、このnetshコマンドの基本的な使い方とIPv4アドレスなどの具体的な設定方法、注意点を説明する。
netshコマンドの基本的な使い方
netshコマンドは、ネットワーク全般の制御用のコマンドである。そのため、多くのサブコマンドが用意されている。TCP/IP関連のパラメータは、「interface」コンテキストの中にある、「ipv4」「ipv6」サブコンテキストで設定する。
この例では対話的にnetshコマンドを利用している。その一方で、「netsh interface ipv4 ?」のように、netshコマンドにコンテキストやパラメータを付けて、コマンドプロンプト上から直接実行することも可能だ。この方法は、コマンドをバッチファイル化しておいて、簡単に実行させたい場合に便利である。
またnetshのサブコマンドでは省略形が使える。例えば「interface」は「int」、「address」は「addr」、「config」は「conf」、「ipv4」は「ip」といった具合だ。以下では入力が簡単な省略形でコマンドラインを紹介する。
netshで現在のIPv4アドレス設定を確認するには
現在のネットワークインタフェースの状態を確認するには「netsh int ip show 〜」コマンドが利用できる。IPv4アドレスを確認するには、以下のようにshow confサブコマンドを実行するとよいだろう。
netsh int ip show conf
netshで固定IPv4アドレスを割り当てるには
上記のshow confサブコマンドの出力で、「インターフェイスの構成」にある「DHCP 有効:」が「はい」になっている場合は、DHCPによるIPv4アドレスの自動割り当てが有効になっている。これを変更して固定IPv4アドレスを割り当てるには、管理者権限で起動したコマンドプロンプトで、以下のコマンドラインを実行する。
netsh int ip set addr "<インタフェース名>" static <IPv4アドレス> <ネットマスク> <ゲートウェイ> <メトリック>
メトリックは省略可能。
<インタフェース名>は上の例なら「イーサネット」となる。これは「netsh int ip show int」でも確認できる。
<メトリック>とは、インタフェースの優先度を表す数値で、同じネットワークに属するインタフェースが複数ある場合、数値の小さい方が優先される。<メトリック>を省略すると、インタフェースのタイプ(速度)に応じて適宜割り当てられる。
set addrサブコマンドでIPv4アドレスを静的に設定した場合、DNSサーバも自動的に静的設定に切り替わり、結果として未設定の状態に変わってしまうことがある。そのため、必ずDNSサーバも静的かつ明示的に設定する必要がある。その方法はすぐ後で説明する。
IPv4アドレスをDHCP割り当てに戻すには次のようにする。
netsh int ip set addr "<インタフェース名>" dhcp
netshでDNSサーバの設定を変更するには
以上の操作でIPv4アドレスは変更されたものの、DNSサーバについては未設定になってしまうので、改めて設定し直す(これも管理者権限でコマンドプロンプトを起動する必要があるので要注意)。
冗長性を確保するため、一般的にDNSサーバは複数台用意されていることが多い。このような場合、最初の1台は「netsh int ip set dns 〜」コマンドで割り当て、追加の分は「netsh int ip add dns 〜」コマンドで割り当てる。
Copyright© Digital Advantage Corp. All Rights Reserved.