ネットワークコマンドで管理が変わる!

第1回 連載にあたって

 今回よりWindowsのネットワークコマンドの便利な使い方を連載することになった。この連載では主にネットワーク管理者ビギナーを対象に、Windowsが持つネットワークコマンドを活用するためのノウハウを解説することにする。対象とするネットワーク管理者は、一応TCP/IPについての基本的な知識は持っているが、まだ半人前のネットワーク管理者ビギナーとする。

 最近はネットワーク管理者といえどもWindowsGUI操作に慣れ親しんでおり、すべての操作をGUIで行おうとする傾向がある。そのこと自体は悪いことではない。しかしGUIでできることには限界があり、またGUIでできることでもコマンドを使うとさらに簡単にできることも多い。この連載ではGUIでは困難な操作をコマンドを使うことでいかに簡単にできるかを解説することにする。それはネットワーク管理を効率的に行うことで、ネットワーク管理者が楽をするための方法でもある。


Windowsのネットワークコマンド

 Windowsには数多くのネットワークコマンドが標準で用意されている。そのうち、かなりの数のコマンドはDOSの時代からあるコマンドであり、UNIX/Linuxとも共通のコマンドだが、同じコマンドでもWindowsでは拡張されている機能があり、DOSUNIX/Linuxの知識だけでは使いこなすには十分ではない。また、netサービスコマンドやnetshコマンドなどのDOSUNIX/Linux にはないWindows独自のコマンドも存在する。これらのコマンドすべてを解説するのはページ数の関係で不可能なので、この連載では、Windowsのネットワークコマンドの中でも特に重要なnetサービスコマンドとnetshコマンドを中心に解説することにする。また、標準ではないが、サポートツールズとしていくつかの便利なコマンドが用意されているので、それについても適宜解説していこうと思っている。なお、Windows 2000/XPのすべてのネットワークコマンドの詳細な解説は、拙著「Windowsネットワークコマンド正引き・逆引きスーパー辞典」(ソーテック社刊) を参照していただけると幸いだ。

 ネットワークコマンドに関しては、Windowsのバージョンにより使えるコマンドやオプションパラメータに違いがある。また同じバージョンでもSP (サービスパック) により違いもある。これらのバージョンやSPのすべてを解説すると煩雑となるので、本連載ではクライアントOSとしてはWindows XP SP2、サーバーOSとしてはWindows Server 2003 SP1を前提として解説する。他のSPWindows 2000の場合は必要に応じて注釈することにする。Windows 9xおよびWindows NTについては解説しない。また64bitWindows XPWindows Server 2003の場合は、一部廃止されたコマンドパラメータがあるが、ほとんどのコマンドは32bit版と同じなので、特に取り上げない。


●コマンドプロンプトの基本操作

ネットワーク ((に限らないが) コマンドはコマンドプロンプト画面で操作する。コマンドプロンプトは [スタート] メニューから [すべてのプログラム] [アクセサリ] [コマンドプロンプト] で起動することができる。


画面1● XPのコマンドプロンプト画面


 この画面での基本操作は、キーボードからコマンドを入力し、[Enter] キーを押すことで、コマンド処理した結果がこの画面に表示される。コマンドプロンプトを終了するときは「exit」と入力して [Enter] キーを押す。なお、コマンドプロンプトのデフォルトの画面は上の例のように黒い背景に白文字となっているが、このままでは印刷したときに見にくくなるため、この後の画面はすべて白い背景に黒文字の画面で紹介する。このようなコマンドプロンプト画面のカスタマイズは、左上のアイコンをクリックして [プロパティ] を表示すると変更できるので、使いやすいように変更しておくとよい。

 ネットワークコマンドの多くは管理者権限がないと実行できない。管理者権限がなくても実行できるコマンドもあるが、基本的には管理者権限で実行するようにしよう。そのためには管理者権限を持ったアカウントでログオンしてコマンドプロンプトを起動するか、コマンドプロンプトまたは [スタートメニュー] [ファイル名を指定して実行] runasコマンドを使ってコマンドプロンプトを起動する。

  runas /user:administrator cmd.exe


●コマンドの書式

本連載で紹介するコマンドは次の書式で記述する。

  コマンド名 パラメータ

 コマンド名の入力は大文字でも小文字でもかまわないが、本連載ではすべて小文字で記述する。パラメータはほとんどの場合、大文字でも小文字でもかまわないが、一部のコマンドでは大文字と小文字とを区別するものがあるので、大文字が必要な場合は大文字で、それ以外はすべて小文字で記述する。大文字と小文字とを区別する場合はその旨注釈する。

 パラメータの構文は次の表記規則に従って記述する。

・表記規則

表記

意味

太字

記述どおりに入力しなければならない要素

斜体

ユーザーが指定 (入力) しなければならない情報。省略はできない。

省略記号 (...)

コマンドラインで繰り返すことができるパラメータ。繰り返し回数は任意。

角かっこ ([ ])

省略可能な項目

中かっこ ({ })、パイプ (|) で区切られた選択肢

1つだけ選択しなければならない選択肢。どれか1つを選択・入力する。例 :{yes | no}

 

例えば、net config serverコマンドの構文は次のとおり。

net config server [/autodisconnect:minutes] [/srvcomment:"text"] [/hidden:{yes | no}]

 この場合は、[ ] に囲まれたすべてを省略してnet config serverとだけ入力することもできる。また、/autodisconnectパラメータを付ける場合はminutesの部分に分単位で時間を指定する (例:net config server /autodisconnect:5)、同様に/srvcommentパラメータを付ける場合は、コメントの文字を ” ” で囲んで入力する (例:net config server /srvcomment:"File Server")/hiddenパラメータを付ける場合は、yesまたはnoを選択指定する (例:net config server /hidden:yesまたはnet config server /hidden:no)。これらのパラメータは複数同時に指定することもできる (例:net config server /autodisconnect:5 /hidden:yes)

netサービスコマンド

 前書きが長くなったが、以下ではnetサービスコマンドのいくつかを活用する方法を解説する。

 Windowsにはnetで始まる多数のコマンド群がある。これらはnetサービス上で動作する。netサービスによるコマンドは次の書式で指定する。

net CommandName [Parameter]

 利用できるCommandName (netサービスコマンド) は、「net /?」または「net help」と入力すると表示される。


画面2● net /?でnetサービスコマンドの一覧を表示


 これらのnetサービスコマンドで共通する特徴は次のとおり。

・「net CommandName /?」でコマンドの構文を表示する。「net help CommandName」または「net CommandName /help」と入力すると、そのコマンドの詳細なヘルプを表示する。


画面3● net help computerと入力するとnet computerコマンドの構文が表示される


・すべてのnetサービスコマンドで、/y (yes) および /n (no) コマンドラインオプションを使用できる。例えば、net stop serverコマンドでは、Serverサービスに依存しているすべてを停止するか確認するプロンプトを表示するのに対して、「net stop server /y」と入力すると、自動的にyesと応じることで確認プロンプトの表示を省略して、Serverサービスをシャットダウンできる。

・パラメータにスペースが含まれている場合は、このテキストを二重引用符で囲む (例:"Service Name")。例えば、次のコマンドはNet Logonサービスを開始する。

net start "net logon"


●すべてのユーザーアカウントのデータベースを更新する

 ユーザーアカウントデータベースを更新し、すべてのアカウントに対するパスワードおよびログオン要件を修正する場合は、GUIで行うとしたら、[コントロールパネル] [管理ツール] [ローカルセキュリティポリシー] (サーバーの場合は [ドメインセキュリティポリシー] の画面から [セキュリティ設定] [アカウントポリシー] [パスワードのポリシー] および [アカウントロックアウトのポリシー] で行うことができるが、ここまでたどるのが結構面倒だ。特に多数のコンピュータで同じ設定を行うとしたら、そのつどGUI画面を開いていくのは大変だ。

しかし、net accountsコマンドを使うと1コマンドですべて設定できるのでずっと簡単にできる。またコマンドパラメータをバッチファイルに記述しておけば、いちいちコマンドパラメータを入力する手間も省ける。

net accountsコマンドでは、パラメータを指定せずに「net accounts」と入力すると、強制ログオフまでの時間、パスワードの変更禁止期間、パスワードの有効期間、最小パスワード長、使用できない旧パスワード数、ロックアウトしきい値、ロックアウト期間、ロックアウト監視ウィンドウ、コンピュータの役割の情報を表示することもできる。

net accounts


画面4 Windows Server 2003ドメインコントローラ上でnet accountsを実行した結果


 ユーザーアカウントのパスワードの最小文字数を7文字に、パスワードを5回変更した後でないと同じパスワードを再び使えないようにし、7日以上経過しないとパスワードを変更できないようにし、30日ごとにパスワードを強制的に変更することを強制し、ログオン時間が超過したときには強制ログオフされるようにし、強制ログオフの5分前に警告が与えられるようにするには、次のように入力する。

net accounts /minpwlen:7 /uniquepw:5 /minpwage:7 /maxpwage:30 /forcelogoff:5


画面5● Windows XP上でnet accpuntsコマンドで設定を行い、その結果を確認


☆コマンドの構文

net accounts [/forcelogoff:{minutes | no}] [/minpwlen:length] [/maxpwage:{days | unlimited}] [/minpwage:days] [/uniquepw:number] [/domain]

・パラメータ

/forcelogoff:{minutes | no} : ユーザーアカウントの有効期間が切れたり、ログオン時間が超過したときに、サーバーとのユーザーセッションを終了させるまでの時間を分単位で設定する。no (デフォルト) は、ユーザーが強制的にログオフされないようにする。

: /forcelogoff:minutesを使うと、ユーザーがネットワークから強制的にログオフされる何分か前に警告が送られる。ユーザーは、開いているファイルがある場合にも通知を受ける。minutes2未満の場合、ユーザーはネットワークからすぐにログオフするよう警告を受ける。

/minpwlen:length : ユーザーアカウントのパスワードの最小の文字数を設定する。範囲は0文字から127文字までで、デフォルトは6文字。

/maxpwage:{days | unlimited} : ユーザーアカウントのパスワードが有効な最大の日数を設定する。unlimitedを指定すると、有効日数は無制限となる。/maxpwageオプションは、/minpwageより大きくなければならない。範囲は1日から49,710日まで (つまり、unlimited49,710日と同じ) で、デフォルトは90日。

/minpwage:days : ユーザーが新しくパスワードを変更できるようになるまでの最小の日数を設定する。デフォルトは0日で、これは最小の時間が設定されていないことを意味する。範囲は0日から49,710日まで。

/uniquepw:number : パスワード変更が指定された回数 (number) になるまで、同じパスワードを繰り返さないように要求する。範囲は0回から24回で、デフォルトは5回。

/domain : 現在のドメインのプライマリドメイン コントローラ上でこの処理を実行する。このパラメータがない場合は、ローカルコンピュータ上でこの処理を実行する。

<パラメータなし>
次の情報を表示する。
  ・強制ログオフまでの時間
  ・パスワードの変更禁止期間
  ・パスワードの有効期間
  ・最小パスワード長
  ・使用できない旧パスワード数
  ・ロックアウトしきい値
  ・ロックアウト期間
  ・ロックアウト監視ウィンドウ
  ・コンピュータの役割の情報

: アカウントのパラメータを変更するコンピュータ上で、Net Logonサービスが実行されていなければならない。また、net accountsを使う前に、ユーザーアカウントが作成されている必要がある。ユーザーアカウントの作成は、ユーザーマネージャまたはnet userコマンドを使う。


●非アクティブなネットワーク接続を切断するまでの時間を設定したり、サーバーを隠しサーバーとする

サーバーとのTCP/IP接続がアクティブでない状態が長時間続くと接続が切断されることがある。これは使用されていないセッションで余分なサーバーリソースが消費されるのを防ぐために、指定されたタイムアウト期間 (デフォルトでは15) を経過してもアイドル状態にあると接続が切断されるためだ。ただし再度接続が要求されると、接続は直ちに再確立される。この切断までの時間は変更することができる。ただし、変更するためにはレジストリエディタを使って直接レジストリを編集する必要があるので厄介だ。一方、net config serverコマンドを使うとこれが簡単に変更できる。さらに、net config serverコマンドを使うと、構成可能なサーバーサービスの設定を表示できる。切断されるまでの時間を30分に設定するには次のように入力する。

  net config server /autodisconnect:30

 現在の設定を表示するには「net config server」と入力する。


画面6● 切断されるまでの時間を30分に設定し、結果を表示


サーバーを隠しサーバーとしてネットワークブラウザから見えないようにすることができる。ユーザーに直接触って欲しくないサーバーを隠しサーバーとしておけば、不要なトラブルを避ける効果が期待できる。これもGUIで設定するためにはレジストリの編集が必要だが、net connfig serverコマンドなら簡単に設定できる。隠しサーバーに設定するには次のコマンドを入力する。

 net config server /hidden:yes


画面7● サーバーを隠しサーバーに設定し、結果を表示


この他に、net config serverコマンドではコンピュータのコメント (説明) を設定することもできるが、これはGUI画面では、[システム] [コンピュータ名] タブで設定できるので、特にコマンドが便利ということはない。

☆コマンドの構文

net config server [/autodisconnect:minutes] [/srvcomment:"text"] [/hidden:{yes | no}]

・パラメータ

/autodisconnect:minutes : ユーザーのセッションを切断するまでにアクティブでない状態にしておく最大の時間を設定する。-1を指定すると、切断しない。範囲は-165535分で、既定値は15分。

/srvcomment:"text" : Windowsの画面上やnet viewコマンドで表示されるコンピュータに関するコメントを追加する。コメントは48文字以内。テキストは二重引用符で囲む。

/hidden:{yes | no} : サーバーのコンピュータ名をネットワークブラウザの一覧に表示するかどうかを指定する。サーバーを隠しても、そのサーバー上のアクセス権は変化しない。デフォルトはno

: サーバーサービスの現在の構成を表示するには、パラメータなしで「net config server」と入力する。

 net config serverコマンドを使ってサーバーサービス設定のすべてを変更できるわけではない。net config serverコマンドで表示できる情報は次のとおりだが、このコマンドで変更できない情報 (*) もある。

コンピュータ名 (*)

コンピュータのコメント

Windowsバージョン (ソフトウェアのバージョン番号)(*)

アクティブなネットワーク (ネットワークの説明)(*)

隠しサーバー (/hidden 設定)

最大ログオンユーザー (サーバーの共有リソースを使用できるユーザーの最大数)(*)

セッションあたりの開いているファイルの最大数 (セッション中にユーザーが開くことのできるサーバーファイルの最大数)(*)

アイドルセッション時間 ()