NTのユーザ情報をファイルに出力する方法

対象プラットフォーム

質問

Windows NT ドメインの運用管理を行っておりますが、多数のユーザを一括して登録したり削除したりする必要があり、ドメインユーザマネージャで一人ずつ登録する方法では限界を感じております。 ユーザ情報をファイルに記述しておき、それを元に一括して登録する方法はないのでしょうか。

回答

Windows NT でもコマンドラインからユーザの登録や削除を行う方法は提供されていますので、それらを使えばユーザ情報の一括処理は実現できます。 しかし、GUI から設定できる情報と比べ、設定できる情報に制限がありますので注意する必要があります。

NT 付属のツールでも作り込めば実現可能

Windows NT には標準で net.exe というコマンドラインのツールがあります。 このツールに user というオプションを付けることで、コマンドラインからアカウントの登録を行うことが可能になります。具体的な使用例は 図1 を参照してください。


図1: net user コマンド

なお、net help user と入力することで net user の文法や設定できる項目の情報が表示されます。 また Windows NT のオンラインヘルプにも更に詳しい情報があります。[スタート] - [ヘルプ] - "Windows NT コマンド" でアクセスできますので、ご覧になってください。

このツールを使うことで、バッチファイル等を作成すれば、一括登録が可能になります。 しかしファイルを読み込んで net user コマンドが理解できる形式に変換する部分は全て作り込む必要があるので、手間がかかります。 また 無期限パスワードの設定など一部の属性は net user では設定することが出来ません。

なお、net.exe は非常に多機能なツールで、一つ目の引数によって動作内容が大きく異なります。 例えばドライブマッピングをおこなう net use などは、すでにご存じの方も多かったと思います。
net.exe の機能の一覧は net help や前述した Windows NT のオンラインヘルプで見ることができますので、管理者の方であれば、一度は目を通しておくことを強くお勧めします。

リソースキットの addusers.exe を使う

リソースキットの addusers.exe を使うと CSV 形式のファイルを読み込んで、 NT のユーザを自動で作成することが出来、非常に便利です。 例えば図2 のような CSV ファイルを Excel 等で作成しておいた上で、図3 のように実行すれば簡単に多数のユーザを作成できます。
なお addusers.exe は既に登録されたアカウントを CSV 形式のファイルに書き出すことも出来ます。詳しくはリソースキットのオンラインヘルプを参照してください。

このように便利な addusers.exe ですが、設定できる項目は, 一部の限られた項目だけです。せっかくこうしたツールを提供するのであれば、全ての設定をちゃんと出来るようにして欲しいものです。

最新版の addusers.exe を使う

実は addusers.exe はマイクロソフトの以下の URL で最新版が提供されています。

以下上記の URL から入手できる addusers.exe を最新版の addusers.exe と呼称します。 図4 は最新版の addusers.exe のヘルプ画面ですが、普通の addusers.exe と比べ、「無期限パスワード」や「次回ログオン時にアカウント変更」などの設定を行えるようになっています。 それでもやはり ログオンするワークステーションの指定など、設定できない項目はありますが、通常の使用であれば、最新版の addusers.exe で充分使えると思います。

なお、最新版の addusers.exe は Unicode に対応した関係上、日本語を扱う時には注意が必要です。リソースキットに付属の addusers.exe は SJIS のままで日本語を扱えましたが、最新版の addusers.exe では、Unicode にする必要があります。 したがって、日本語を使うときはメモ帳などを使って、あらかじめ addusers.exe に処理させるファイルの文字コードを Unicode に変換しておく必要があります。

詳細な設定が必要なら ADSI を使ってプログラミング

ADSI は統一的なディレクトリサービス操作のためのインタフェースを提供する API で、 Windows 2000 以降では標準で搭載されている他、Windows NT 用のモジュールも、Microsoft の Web ページ上から無償で入手可能です。Windows NT 4.0 用のモジュールの入手には以下を参照してください。

本来は Windows 2000 で搭載される予定の Active Directory を操作するための API ですが、Windows NT 4.0 ドメインのユーザアカウントも操作することが出来ます。 COM に準拠しており、Visual Basic 等から簡単に利用することが出来ますので Option Pack に付属の WSH (Windows Scripting Host)と組み合わせることで比較的簡単に全ての属性を操作することが出来ます。

図x に WSH で書いた簡単なスクリプトを載せましたのでご参照ください。
当然ですが, 簡単とはいえ VB のプログラミングについての理解が必要です。もともと VB や WSH で作り込んでいたり、これらのプログラミング技術があるのでなければ、可能な限りコマンドの利用を考えた方がよいでしょう。

注記・補足

  1. Windows 2000 以降に関する補足を追加しています。
  2. 本文書は、日経 Windows NT 1999 年 10 月号の「トラブル解決 Q&A コーナー」に掲載された「NTのユーザ情報をファイルに出力する方法」の草稿を筆者の方で HTML 化して掲載しているものです。

Copyright (C) 1998-2009 TAKAHASHI, Motonobu
Last update: 2002-09-20 02:53:56 JST
webmaster@monyo.com