ネットワークコマンドで管理が変わる!
第12回 netshでDHCPサーバーを管理しよう (その1)
今月のコマンド
show server
add server
delete server
server
前回、次はルーティング関連かRAS関連のnetshコマンドを紹介すると書いたが、その予定を変更し、今回から数回にわたって、DHCPサーバーを管理するためのnetshコマンドを紹介することにする。
これらのコマンドはWindows 2000 ServerおよびWindows Server 2003 (R2を含む) でのみ利用できる。Windows 2000 ProfessinalおよびWindows XP Professional/Home Editionでは利用できない。
これらのnetshコマンドと同様のことは、DHCPサーバーからであれば、管理ツールのDHCPスナップインでGUI操作ができる。しかし、DHCPサーバーでないマシンにはDHCPスナップインがないため、GUI画面での操作ができないが、netshコマンドならDHCPサーバーでないマシンからでも、リモートのDHCPサーバーに対してこれらの操作ができる。netshコマンドならではの便利な機能だ。ただ、残念なことにWindows 2000/XP Professionalではこれらのコマンドが使えないため、Windows 2000/XP ProfessionalからはDHCPサーバーのリモート操作ができない。
---------------------------------------------------------------------------
承認されたDHCPサーバーを確認する
show server
---------------------------------------------------------------------------
>ディレクトリサービスに登録されているDHCPサーバーを確認
Active Directory環境でDHCPサーバーを利用するためには、そのDHCPサーバーをActive Directoryで承認し、ディレクトリサービスに登録する必要がある。単にDHCPサーバーを導入しただけでは利用できない。
DHCPサーバーはActive Directoryに問い合わせ、自身が承認済みであると分かると、クライアントからのDHCPリクエストに応答するようになる。しかし、承認されていないと分かった場合はクライアントからのリクエストに応答しない。
なお、Active DirectoryのメンバーでないスタンドアロンのDHCPサーバーの場合は承認とは無縁だが、ネットワーク内に承認されたDHCPサーバーが存在するかどうかを確認し、存在する場合はクライアントからのリクエストに応答せず、承認されたDHCPサーバーが存在しない場合のみクライアントからのリクエストに応答する。
netshコマンドのdhcpコンテキストには、こうしたDHCPサーバーの承認・登録など、DHCPサーバーを管理するためのサブコマンドが用意されている。
現在Active Directoryで承認されディレクトリサービスに登録されているDHCPサーバーを確認するためには「show server」コマンドが利用できる。
show serverコマンドの構文は次のとおり。
show server
Windows Server 2003にDHCPサーバーをインストールした直後にshow serverコマンドを実行すると画面1のようになる。これはインストールしたDHCPサーバーがActive Directoryに承認されていないことを示している。
DHCPサーバーが承認され、ディレクトリサービスに登録された後でshow serverコマンドを実行すると画面2のようになる。これでやっとそのDHCPサーバーが役割を果たすようになる。
画面1● show server コマンドで確認 ( 登録されているサーバーがない場合 )
画面2● show serverコマンドで確認 (DHCPサーバーが登録されている場合)
---------------------------------------------------------------------------
Active DirectoryでDHCPサーバーを承認する
add server
---------------------------------------------------------------------------
>DHCPサーバーを承認し、ディレクトリサービスに登録
「add server」コマンドは、DHCPサーバーを承認し、ディレクトリサービスにそのDHCPサーバーを追加する。このコマンドはDHCPサーバー上で実行することも、別のメンバーサーバーから実行することもできる。ただし、デフォルトではEnterprise AdminsグループのメンバーだけがDHCPサーバーの承認を行うことができる (他のメンバーに委任することも可能)。
add serverコマンドの構文は次のとおり。
add server Name Address
パラメータのNameは承認したいDHCPサーバーの名前で、AddressはそのDHCPサーバーのIPアドレスだ。共に必須で、Nameは大文字と小文字を区別する。
例: add server vm-2k3r2 192.168.3.199
このコマンドを実行すると、vm-2k3r2という名で、IPアドレスが192.168.3.199のDHCPサーバーがディレクトリサービス内の承認されたサーバーの一覧に追加される (画面3)。
画面3● add serverコマンドでDHCPサーバーを承認・登録
---------------------------------------------------------------------------
Active DirectoryでDHCPサーバーを承認解除する
delete server
---------------------------------------------------------------------------
>DHCPサーバーを承認解除し、ディレクトリサービスから削除
「delete server」コマンドは、DHCPサーバーを承認解除し、ディレクトリサービスからそのDHCPサーバーを削除する。このコマンドはDHCPサーバー上で実行することも、別のメンバーサーバーから実行することもできる。ただし、デフォルトではEnterprise AdminsグループのメンバーだけがDHCPサーバーの承認解除を行うことができる (他のメンバーに委任することも可能)。
delete serverコマンドの構文は次のとおり。
delete server Name Address
パラメータのNameは承認解除したいDHCPサーバーの名前で、AddressはそのDHCPサーバーのIPアドレスだ。共に必須で、Nameは大文字と小文字を区別する。
例: delete server vm-2k3r2 192.168.3.199
このコマンドを実行すると、vm-2k3r2という名で、IPアドレスが192.168.3.199のDHCPサーバーがディレクトリサービス内の承認されたサーバーの一覧から削除される (画面4)。
画面4● delete serverコマンドでDHCPサーバーを承認解除
なお、netshコマンドでDHCPサーバーの承認/解除を行った場合に、GUIのDHCPスナップインにその結果が反映しないことがあるという不具合がある。この対策としてはDHCPサーバーサービスを再起動することで正しく反映されるようになる。
http://support.microsoft.com/kb/279908/ja
---------------------------------------------------------------------------
別のDHCPサーバーにコンテキストを切り替える
server
---------------------------------------------------------------------------
>別のDHCPサーバーにアクティブなコンテキストを切り替える
「server」コマンドは、現在のnetshコマンドを実行しているマシンとは別のDHCPサーバーにアクティブなコンテキストを切り替えるコマンドだ。このコマンドを使うと、あたかもそのDHCPサーバー上でnetshコマンドを実行しているようにDHCPサーバーの管理ができるようになる。リモートからDHCPサーバーを管理する場合に便利なコマンドだ。もちろんDHCPサーバー上でこのコマンドを使って自身の管理を行うこともできる。
serverコマンドの構文は次のとおり。
server [{\\ServerName | ServerIP}]
パラメータのServerName はDHCPサーバーのNetBIOSまたは完全修飾ドメイン名 (FQDN)を、ServerIP は DHCP サーバーのIPアドレスを指定する。ServerNameおよびServerIPの値がどちらも指定されていない場合は、ローカルコンピュータを指定したものとみなされる。
このコマンドはコンテキストを変更するコマンドだが、通常のnetshコンテキスト変更コマンドがパラメータを持たないのに対し、このコマンドでは例外的にパラメータを持っている点で他のコンテキスト変更コマンドと異なる。また他のマシンのコンテキストに変更するという点でもユニークなコマンドだ。
例: server \\vm-2k3r2
server 192.168.3.199
このコマンドを実行すると、netshプロンプトが「netsh dhcp server>」(Windows Server 2003の場合:画面5)、「dhcp server>」(Windows 2000 Serverの場合:画面6) と変わり、serverサブコンテキストにいることが分かるが、どのサーバーがアクティブになっているかまでは分からない。
なお、serverコンテキストにはさらにscopeサブコンテキストとmscopeサブコンテキストがある。これについては次回以降で説明する。
画面5● serverコマンドでコンテキストを変更 (Windows Server 2003の場合)
画面6● serverコマンドでコンテキストを変更 (Windows 2000 Serverの場合)
netshサブコマンドリファレンス
netshサブコマンドは、実行できるコンテキストが異なる。そのため、ダイレクトコマンドモードの場合、-cオプションによって実行可能なコンテキストを指定する必要がある。シェルモードの場合は、実行できるコンテキストに移動してからコマンドを実行するか、コンテキスト名をコマンドといっしょに指定して実行する必要がある。
show server
Active Directoryで承認されているDHCPサーバーの一覧を表示する。
[構文]
show server
[パラメータ]
なし
[実行できるコンテキスト] dhcp
add server
DHCPサーバーをActive Directoryで承認し、ディレクトリサービスの一覧に追加する。
[構文]
add server Name Address
[パラメータ]
Name
承認・登録するDHCPサーバーのDNSドメイン名を指定する (必須)。
Address
承認・登録するDHCPサーバーのIPアドレスを指定する (必須)。
[実行できるコンテキスト] dhcp
delete server
DHCPサーバーの承認を解除し、ディレクトリサービスの一覧から削除する。
[構文]
delete server Name Address
[パラメータ]
Name
承認解除するDHCPサーバーのDNSドメイン名を指定する (必須)。
Address
承認解除するDHCPサーバーのIPアドレスを指定する (必須)。
[実行できるコンテキスト] dhcp
server
指定したDHCPサーバーのserverサブコンテキストに変更する。
[構文]
server [{\\ServerName | ServerIP}]
[パラメータ]
\\ServerNameまたはServerIPのいずれかを指定する (省略可能)。
ServerName
DHCPサーバーのNetBIOSまたは完全修飾ドメイン名 (FQDN)を指定する。
ServerIP
DHCP サーバーのIPアドレスを指定する。
[実行できるコンテキスト] dhcp