最高のWindowsコマンド・ライン・ツールは,リソース・キットやサポート・ツール,インターネットで探しても見つからない。それは,まさにWindowsに組み込まれているからだ。Netコマンドはすぐそばにある強力なツールの見本のようなものだが,見過ごされることも多い。以前,私は「まだまだ使えるNet Shareコマンド」という記事で,Net Shareコマンドによるファイル共有の方法を説明した。Netコマンドには,Net Userコマンドという似たようなコマンドがあり,ローカルおよびドメインのユーザー・アカウントを作成,削除,管理するのに便利だ。
構文の詳細
まずは,Net Userコマンドの基本構文から説明しよう。次のように,コマンドに/addオプションを付けると,ユーザー・アカウントを作成できる。
net user <ユーザー名> <パスワード> /add /domain
/addオプションを付けないと,Net Userコマンドは既存のアカウントに対して実行される。/domainオプションは,ドメイン・コントローラ(DC)に対してドメイン・アカウントを作成するためのものだ。このオプションを付けない場合はローカル・アカウントが対象になる(もちろん,DCでコマンドを実行すると,自動的にドメイン・アカウントを作る)。
例えば,次のコマンドは,「hi」というパスワードを持つ「joe」という新しいローカル・ユーザー・アカウントを作成する。
net user joe hi /add
次のコマンドはDCに対して,ユーザー「jane」のパスワードを「wolf」に設定し直す。
net user jane wolf /domain
このコマンドでパスワードの削除(リセット)はできるが,変更はできないことに注意していただきたい。私はパスワードを変更できるコマンド・ライン・ツールを知らない。
Active Directory(AD)アカウントを作成する場合,アカウントのログオン名は「ユーザー名@ドメイン名」となる。例えば,ドメイン「bigfirm.com」のメンバー・サーバーで次のコマンドを実行すると,Windows NT 4.0形式の旧式ログオン名が「bigfirm\wally」で,AD形式のユーザー・プリンシパル名(UPN)が「[email protected]」であるユーザー・アカウントが作成される。
net user wally wallypassword /domain /add
次のようにパスワードを省略することもできる。
net user sally /add /domain
パスワードを省略すると,パスワードのないアカウントが作成される。だが,ほとんどのネットワークでは最低限のパスワードが必要であるため,そのアカウントを使うとエラー・メッセージが表示され,使えないことが多い。ほかのNetコマンドでは大文字と小文字の区別はないが,もちろんパスワードでは大文字と小文字が区別される。
アカウントの属性を変更
アカウントの属性を変更するオプションもある。/active:[yes|no]オプションを使うと,アカウントを有効,無効にできる。/commentオプションを使うと,アカウントにコメントを追加できる。コメントのテキストにスペースや句読点がある場合,次のようにコメントを2重引用符で囲む必要がある。
net user lila /comment:"accounting person" /add
コメントを削除するには,/commentオプションの後に何も入れずに,コマンドを実行する。
/homedirオプションを使うと,ユーザー・ホーム・ディレクトリへのUNC(Universal Naming Convention)パスを指定できる。同様に,/profilepathオプションを使うと,ユーザーの移動プロファイルへのパスを指定できる。
例えば,ユーザー名「Lila」という経理担当者の移動プロファイルを,「fileserver27」サーバーの「\profiles」という共有にある「\lila」フォルダに保存し,Lilaのデフォルトのディレクトリを「fileserver04」サーバーの「\homes」という共有にある「\lilastuff」フォルダに設定する場合,次のようにする。
net user lila /profilepath:"\\fileserver27\profiles\lila" /homedir:"\\fileserver04\homes\lilastuff"
Lilaがログオンすると,Lilaのクライアント・マシンはfileserver27からLilaの移動プロファイルを取得する。次に,Lilaがコマンド・プロンプトを開くと,C:\Documents and Settings\lilaではなく,単にZプロンプトが表示される。クライアント・マシンが自動的にドライブ文字Zを「\\fileserver04\homes\lila」にマップするため,「net use Z: \\fileserver04\homes\lila」と入力したかのようにドライブ文字Zが表示される。
/commentオプションについては,/homedirオプションまたは/profilepathオプションのコロンの後に,何も入力しなければ値を削除できる。マイクロソフト管理コンソール(MMC)の「Active Directoryユーザーとコンピュータ」スナップインを使って移動プロファイルやホーム・ディレクトリを作成したことがあるユーザーならば,これらを作成するときに%username%という組み込み変数を使用することについてはよくご存知だろうが,Net Userコマンドでは使用できない。
アカウントにログオン・スクリプトを割り当てる
ユーザー・アカウントにログオン・バッチ・スクリプトを割り当てる場合も多い。Net Userコマンドでは,/scriptpathオプションでその機能を有効にできる。/scriptpathオプションは,すべてのDCにあるNetlogon共有のファイルを参照する。
例えば,lilastart.cmdをLilaのログオン・バッチ・スクリプトとして指定すると,Lilaのログオン・スクリプトはNetlogon共有にあるlilastart.cmdファイルになる。\scripts\lilastart.cmdを指定すると,これもNetlogon共有にある\scriptsフォルダ内のスクリプトになる。
/fullnameオプションを使うと,「Active Directoryユーザーとコンピュータ」スナップインが使うユーザーの表示名の値を割り当てられる。/workstationsオプションでは,任意のアカウントがログオンできるワークステーションを制限できる。Lilaのアカウントに対して,「PCWS55」というコンピュータにのみログオンできるように制限するには,次のようなコマンドを実行する。
net user lila /workstations:pcws55
複数のコンピュータを指定するには,コンピュータ名をカンマで区切って指定する。2重引用符で囲むこともできるが,カンマの後にはスペースを入れてはいけない。コンピュータ名は8つまで指定できる。
/passwordchg:[yes|no]オプションは,ユーザーがパスワードを変更できるかどうかを制御する。不思議なことに,Net Userコマンドではアカウントのパスワードを失効しないように設定することはできない。
/deleteオプションを追加するとアカウントを削除できる。
net user joe /delete
上のコマンドはローカル・アカウント「joe」を削除する。
net user jane /domain /delete
上のコマンドはDCと通信し,ユーザー・アカウント「jane」を削除する。Net Userコマンドをパラメータなしで使うと,ユーザー・アカウントを一覧表示する。「net user ユーザー名」コマンドを実行すると,指定したユーザーのユーザー・アカウント情報を表示する。