環境によっては、DHCPを使ったTCP/IPの自動設定を利用できない場面もある。この場合には、netshコマンドを利用して、設定内容をファイルに保存しておき、これをロードすることで、TCP/IP設定を復帰することができる。複数の接続先で設定を切り替える場合には、設定ファイルを複数作っておき、それらを切り替えてロードすれば簡単である。
対象OS:Windows 2000 Professional/Windows XP Professional/Windows XP Home Edition/Windows 2000 Server/Windows 2000 Advanced Server
DHCP(Dynamic Host Configuration Protocol)が一般的ではなかったその昔、IPアドレスやサブネット・マスクを始めとするTCP/IP設定はすべて手作業で行うのが一般的だった。このため、間違えて他人と同じIPアドレスを割り当ててトラブルになったり、ゲートウェイ・アドレスを間違えて通信できなかったりといった問題がよく起こっていたものだ。DHCPは、こうしたTCP/IPが抱える厄介な問題を解決してくれた。ネットワークに参加するクライアント側では、自身がDHCPクライアントである旨の設定を行っておけば、ネットワークの接続時にIPアドレスやサブネット・マスク、デフォルト・ゲートウェイ・アドレス、ドメイン名などの情報がDHCPサーバから与えられ、自動的に正しいネットワーク設定が行える。このようにDHCPを利用すれば、クライアントのTCP/IP設定が容易になると同時に、各クライアントのTCP/IP設定をサーバ側で集中的に管理できるようになるため、ネットワーク管理者の負担も大幅に軽減される。Windows OSを始め、ほとんどのネットワーク機器でDHCPが標準サポートされるようになった現在、よほど特別な事情がないかぎり、DHCPを使わない理由はないだろう。
しかし、比較的身近な例外として、ノートPCを持ち歩き、会社や自宅、訪問先のネットワークに接続して使うというケースがある。この場合でも、すべての接続先でDHCPが利用できるなら、クライアント側(ノートPC側)は、DHCPによって適切な設定を行うようにしておけばよい。DHCPの設定はTCP/IPのプロパティで行う。Windows 2000の場合は、[スタート]メニューの[設定]−[ネットワークとダイヤルアップ接続]を選択し、ネットワーク接続に使用するインターフェイスを選択する。システムに複数のネットワーク・インターフェイスがある場合は、それらが一覧表示される。そして接続の[プロパティ]を表示し、プロトコル一覧から[インターネット プロトコル(TCP/IP)]をダブルクリックし、表示される[IPアドレスを自動的に取得する]ラジオ・ボタンを選択する)。
Windows XPの場合は、[スタート]メニューの[コントロール パネル]−[ネットワーク接続]を選択し、表示されるサブメニューからネットワーク・インターフェイスを選択する。表示される「接続の状態」ダイアログの[全般]タブの[プロパティ]ボタンをクリックし、表示される「接続のプロパティ」ダイアログのプロトコル一覧から[インターネット プロトコル(TCP/IP)]をダブルクリックし、表示される[IPアドレスを自動的に取得する]ラジオ・ボタンを選択する。
実のところ筆者も、電子メールはすべてノートPCで管理しており、これをまるごと持ち歩くことで、いつでもどこでも完全に同じメッセージング環境を使えるようにしている(メッセージは、サーバからPOPで取り出し、ノートPCのローカル・ディスク上で管理している)。幸い筆者の場合は、会社も自宅もDHCPを利用できる環境にあるのだが、接続するネットワーク環境によっては、DHCPを利用できず、IPアドレスなどの固定的な割り当てが必要な場合があるかもしれない。そのような場合には、手作業でIPアドレスなどのTCP/IP設定を行うことになる。手作業でTCP/IP設定を行うには、先のダイアログで[次のIPアドレスを使う]ラジオ・ボタンの側を選択する。するとそれ以下のテキスト・ボックスが有効になるので、望みのTCP/IP情報をマニュアルで入力する(画面はIPアドレス“192.168.100.5”をマニュアルで指定しているところ)。
このようにして、DHCPサーバを利用できるネットワークに接続するときにはDHCPクライアントでTCP/IP情報を自動設定するようにし、そうでないネットワークに接続するときにはマニュアルでTCP/IP情報を指定する。これで、双方のLAN環境でノートPCを使えるようになる。ただし、接続自体は問題なく行えるようになったのはよいとして、接続を切り替えるたびに、毎回TCP/IPのプロパティ・ダイアログを表示して、設定を変更するのは面倒だ。そんなときには、次のnetshコマンドを使うことで、設定を簡単に切り替えられるようになる。
Windows 2000/XPには、ネットワーク関連の構成を設定したり、監査を行ったりするためのコマンドライン・スクリプト・インターフェイスとしてnetsh.exeコマンドが提供されている(このnetshコマンドを利用したRRAS(Routing and Remote Access)セキュリティ設定について、別稿「運用:常時接続時代のパーソナル・セキュリティ対策(第2回)」でご紹介した)。このnetshコマンドを活用すれば、くだんのTCP/IP設定を1クリックで実行できるようになる。
簡単にいえば、2つのTCP/IP設定(会社用と自宅用など)の状態をnetshコマンドでファイルに保存しておき、同じくnetshコマンドを使って、それらをスクリプトとして読み込んで、TCP/IP設定を行う。後は、それらをマウス・ボタンの1クリックで実行できるように、バッチ・ファイルにして、ショートカットをタスク・バーのクイック起動バーに配置するだけだ。
netshコマンドを使用して、現在のTCP/IP設定を保存するには次のようにする(この例では、自宅にはDHCPサーバが存在しないと仮定し、前出の“192.168.100.5”をIPアドレスとして指定した状態でコマンドを実行し、設定内容を“home_conf.nsh”というファイルに保存した。ファイル名や拡張子は任意で構わない)。
C:\>netsh -c interface dump > home_conf.nsh
詳しくは説明しないが、これはnetshコマンドを“interface”コンテキストで起動し、それに“dump”コマンドを与えて、その結果を“home_conf.nsh”というファイルにリダイレクトしている。netshは、単一のコマンドではなく、さまざまなシステム・ヘルパ・プログラムを起動するためのコマンドライン・インターフェイスで、対象となるバックエンド・ヘルパごとにコンテキストを選択する(例えばRRASによるルーティング設定では、“routing”コンテキストを使用する)。
こうして出力された“home_conf.nsh”ファイルをのぞいてみると次のようになっている。
#========================
# インターフェイス構成
#========================
pushd interface
reset all
popd
# インターフェイス構成の最後
# ----------------------------------
# インターフェイス IP 構成
# ----------------------------------
pushd interface ip
# "ローカル エリア接続" のインターフェイス IP 構成
set address name = "ローカル エリア接続" source = static addr = 192.168.100.5
mask = 255.255.255.0
set address name = "ローカル エリア接続" gateway = 192.168.100.1 gwmetric = 1
set dns name = "ローカル エリア接続" source = static addr = 192.168.100.1
set wins name = "ローカル エリア接続" source = static addr = none
popd
# インターフェイス IP 構成の最後
ここで“ローカル エリア接続”というのは、コマンドを実行したシステムのネットワーク・インターフェイスのインターフェイス名である。ファイルの内容に関する詳細な説明は省略するが、現在の設定内容を復帰するためのスクリプト・ファイルが出力される。IPアドレスやサブネット・マスクなどが直接指定されていることが分かるだろう。
次に、会社ではDHCPサーバを利用できると仮定し、前出のTCP/IPのプロパティで会社用のネットワーク構成にして(DHCPによって情報を取得する構成にして)、同じくnetshコマンドを実行する(今度は保存先ファイル名を“office_conf.nsh”とした)。
C:\>netsh -c interface dump > office_conf.nsh
ファイルの内容は次のようになった。
#========================
# インターフェイス構成
#========================
pushd interface
reset all
popd
# インターフェイス構成の最後
# ----------------------------------
# インターフェイス IP 構成
# ----------------------------------
pushd interface ip
# "ローカル エリア接続" のインターフェイス IP 構成
set address name = "ローカル エリア接続" source = dhcp
set dns name = "ローカル エリア接続" source = dhcp
set wins name = "ローカル エリア接続" source = dhcp
popd
# インターフェイス IP 構成の最後
こうして出力されたファイルを使って、ファイル内に記述されたネットワーク構成を復元するにはnetshコマンドに“-f”オプションを付け、続いてスクリプト・ファイル(dumpコマンドによって保存したファイル)を指定する(ネットワークを使用中のアプリケーションがあるとコマンドはエラーになるので注意)。具体的には、自宅用の設定にする場合は次のようにする。
C:\>netsh -f home_conf.nsh
Windows 2000/XPの優れたところは、こうしてTCP/IP設定を変更しても、システム・リセットを行う必要がないことだ(Windows 9x系のOSでは、TCP/IP設定を変更したら、必ず再起動が必要だ)。一方、会社用の設定にするには次のようにする。
C:\>netsh -f office_conf.nsh
このようにコマンドを毎回実行してもよいが、面倒なら、バッチ・ファイルを作って、そのショートカットをタスク・バーのクイック起動バーか、デスクトップにでも配置すればよいだろう。
■更新履歴
【2002/12/07】Windows XPに関する情報を加筆・修正しました。
【2001/09/04】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.