Windows 2000 Professional のインストールされたノートPCを持ち歩いて利用しています。 通常はDHCPを利用しているのですが、 DHCP が使えないオフィスも何箇所かあるため、毎回設定を手作業で変更していますが面倒です。 何とか簡単に行なう方法はないでしょうか。
Windows 2000 では、固定IPアドレスを変更する場合でも再起動は不要になりましたが、手作業でIPアドレスを変更するのは面倒ですので、できれば簡単に切替えを行いたいところです。
実は、 Windows 2000 や Windows XP では、 netsh というコマンドラインツールを利用することで、この作業を自動化することが可能です。 ただし、以下の作業を行なうためには「Remote Registry Service」サービスが起動している必要があります。デフォルトでは起動していますが、セキュリティを強化するために停止している場合などもありますので注意して下さい。
例えば、"ローカル エリア接続" インタフェースを表1のように設定する場合の例をリスト1に示します。
IPアドレス | 192.168.1.10 |
ネットマスク | 255.255.255.0 |
デフォルトゲートウェイ | 192.168.1.1 |
DNSサーバ | 192.168.1.1 |
WINSサーバ | 192.168.1.1 |
表1: ネットワークの設定例
c:\>netsh interface ip set address "ローカル エリア接続" static 192.168.1.10 255.255.255.0 192.168.1.1 1 c:\>netsh interface ip set dns "ローカル エリア接続" static 192.168.1.1 c:\>netsh interface ip set wins "ローカル エリア接続" static 192.168.1.1
リスト1: netsh コマンドによる設定
これらのコマンドを含むバッチファイルを作成することで、バッチファイルを起動するだけで設定を変更することが可能になります。上記コマンドの実行例を図1に示します。
図1: netsh コマンドの実行例
なお、dhcp 管理に戻すときは、リスト2のようにしてください。
c:\>netsh interface ip set address "ローカル エリア接続" dhcp c:\>netsh interface ip set dns "ローカル エリア接続" dhcp c:\>netsh interface ip set wins "ローカル エリア接続" dhcp
リスト2: DHCP管理に戻す設定
インタフェース名を「ローカル エリア接続」から変更している場合は上記のコマンド例もそれに応じて変更する必要があります。
既に設定を行っているインタフェースについては、図2のように dump コマンドを用いることで、現在の設定を netsh のコマンド形式で出力させることも可能です。スクリプトを作成する場合に参考にするとよいでしょう。
図2: netsh コマンドを対話的に利用して、dump コマンドを発行する
実際には、コマンドラインからバッチ的に実行することも可能
netsh コマンドはこのように対話的に利用することも可能になっています。
なお、今回紹介した netsh コマンドの機能は、netsh コマンドが持っている機能のごく一部です。この他にも便利な機能がありますので、管理者の方であれば、一度は目を通しておいて損はないでしょう。
Windows XP では、上記のような利用を意識した「代替の構成」という機能も追加されています。Windows XP の TCP/IP の設定で、IPアドレスを DHCP サーバから自動的に取得する設定にしていると、図3のような「代替の構成」タブが表示されます。
図3: Windows XP の「TCP/IPのプロパティ」画面
通常 DHCP サーバに接続できなかった場合、Windows XP は APIPA と呼ばれる機能を使って 169.254 からはじまるIPアドレスを自動的に割り振りますが、図3で「ユーザー構成」を選択の上、IPアドレスなどを設定することで、DHCPサーバに接続できなかった場合に利用するTCP/IPの設定を指定することが可能です。
ただし、代替の構成を複数持つことは出来ないため、複数箇所の固定IPの設定を適宜切替えることはできません。複数の固定IPの切替えが必要な場合は、前述した netsh を利用してください。