ちょっと便利かもしれないTIPS
Windows2000サーバでのユーザの一括登録

登録日 04/05/08   更新日 04/05/08


ユーザの一括登録

年度替りなど、時として大量のユーザを登録したい場合が有ります。 一人一人を手で登録するのはとても大変ですが、 Windows2000の場合、リソースキットCD-ROMに収録されている addusers コマンドを利用すると、 予め登録したいユーザ名を列挙したCSV形式のファイルを作成しておき、 そのコマンドからファイルを呼び出す事で、ユーザを一括して登録することが出来ます。
このコマンドは結構多機能で以下の様なオプションが有るのですが、 ユーザの一括登録には、その内の /c と /p 、/s が関係します。 filenameは作成したcsvファイルの名前です。

ADDUSERS {/c|/d{:u}|/e} filename [/t][/s:x] [/?] [\\computername|domainname] [/p:{l|c|e|d}]

 /?   ヘルプの表示
 /c   filenameファイルで指定されたユーザの作成
 /d   ユーザ名をfilenameで指定したファイルへ書き出す
   :u 文字コードをUNICODEで書き出す
 /p:   ユーザの作成オプション。{lced}のいずれかを指定。
  l   次回ログオン時にパスワードの変更を求めない
  c   ユーザはパスワードを変更できない
  e   無期限パスワード(lオプションの意味を含む)
  d   ユーザを無効にする
 /e   filenameファイルで指定されたユーザの削除
 /s:x  filenameのCSVファイルの区切り記号を“x”にする(例 /s:~)
     デフォルトの区切り記号はカンマ(「,」)
 /t   ターミナル サービス ユーザの作成と取り出し
     /c または /d とともに使用する

例えば、seitoserver という名前のサーバへ newseitofile.csv というファイルに列挙したユーザを登録するには、 以下の様に指定します。
addusers /c newseitofile.csv \\seitoserver


別に作成するCSVファイル(上記の例では newseitofile.csv にあたる)の形式は、以下の通りです。

[User]
ユーザ名,名前,パスワード,コメント,ホームディレクトリのドライブ,ホームディレクトリのパス,プロファイルのパス,ログインスクリプトのファイル名
[Global]
グローバルグループ名,コメント,ユーザ名,……(追加するユーザ名を列挙)
[Local]
ローカルグループ名,コメント,ユーザ名,……(追加するユーザ名を列挙)

例えば、こんな感じになります。 前提条件としては、ユーザ名は入学年度下2桁+1年次の生徒番号、 生徒のホームディレクトリの名前はユーザ名と同じで割り当てるドライブはZドライブ、 とします(当然ですが架空の設定です)。 なお、漢字を使用する時はUNICODEで保存する必要が有ります。
[user]
041101,風 信子,hogehoge,,Z:,\\seitoserver\041101,,seitoscript.bat
041102,浜 裕子,hirehare,,Z:,\\seitoserver\041102,,seitoscript.bat
(以下、人数分)
このファイルをエディタを使って作成するのはとても大変ですが、 表計算ソフトを使って作成しCSV形式で保存すると、 とても楽ですし、融通も利いて便利です。

ちなみに、グループ設定については、私的には、 一つの組織単位に放り込んでしまえば、GUIでやってもそんなに手間は掛からないと思っております。

その後のこと

addusersコマンドでユーザは作成されましたが、 各生徒用ホームディレクトリの作成やそのアクセス権の設定が必要です。 これらについては色々な裏技があり、あちこちのWebPageで紹介されていると思いますが、 私は自己流でバッチファイルにしてみました。 学校毎の設定も有るでしょうし、一概には出来ないとは思いますが、 参考程度にご覧下さい。 前提条件としては、ユーザ名は入学年度下2桁+1年次の生徒番号、 生徒のホームディレクトリの名前はユーザ名と同じで、 サーバに作成する生徒用ホームディレクトリの位置は、 seitoserver のD:\seito\入学年度4桁\ と、します。 ユーザが既に登録されている事も条件になっており、 ユーザが登録されていない場合、ディレクトリは作成されますが、 当然ですがそのユーザのアクセス権は設定されません。 nen、kumi、bango、lastbango の値を変えることで、色々と対応出来ると思います。

rem ===================================================
rem    生徒用ホームディレクトリ作成バッチファイル
rem    ユーザが既に作成されていることが条件です。
rem                                         By Ryn
rem ===================================================
rem ---入学年の設定(西暦下2桁)---
set nen=04
rem ---組の設定---
set kumi=11
rem ---初めの番号の設定---
set bango=01
rem ---最後の番号の設定---
set lastbango=41
rem ---年度のフォルダを作成---
if exist d:\seito\20%nen% goto syori
md d:\seito\20%nen%
:syori
rem ---生徒のフォルダを作成---
if not exist d:\seito\20%nen%\%nen%%kumi%%bango% goto sakusei
echo \seito\%20nen%\%nen%%kumi%%bango%フォルダは既に存在します。>> report.txt
goto nextbango
:sakusei
md d:\seito\20%nen%\%nen%%kumi%%bango%
rem ---フォルダを共有にする---
net share %nen%%kumi%%bango%=d:\seito\20%nen%\%nen%%kumi%%bango%
rem ---共有のセキュリティをかける---
cacls d:\seito\20%nen%\%nen%%kumi%%bango% /e /c /g administrators:f
cacls d:\seito\20%nen%\%nen%%kumi%%bango% /e /c /g %nen%%kumi%%bango%:f
echo \seito\20%nen%\%nen%%kumi%%bango%フォルダの処理が終了しました。>> report.txt
:nextbango
if %bango%==%lastbango% goto owari
if %bango%==41 set bango=42
if %bango%==40 set bango=41
if %bango%==39 set bango=40
              :
(注意:スペースが勿体無いので中略)
              :
if %bango%==03 set bango=04
if %bango%==02 set bango=03
if %bango%==01 set bango=02
goto syori
:owari
exit
上記のバッチファイルの中で使われているコマンドは、 ディレクトリを作成するmd、 ディレクトリやファイルを共有させるshare、 ディレクトリやファイルのアクセス権を設定するcacls(チェンジアクセスコントロールリスト)です。 そのうち、caclsの使用法は以下の通りです。 cacls は、リソースキットCD-ROMに収録されています。
CACLS 対象名 [/T] [/E] [/C] [/G ユーザ名:アクセス権]
             [/R ユーザ名:アクセス権] [/P ユーザ名:アクセス権] 
             [/D ユーザ名]

  対象名  ACL(アクセスコントロールリスト)を表示する。
  /T      そのディレクトリと全てのサブディレクトリにある
          対象の ACL を変更する。
  /E      ACL を置き換えず編集をする。
  /C      アクセス拒否エラーを無視する。
  /G ユーザ名:アクセス権
          指定されたユーザにアクセス権を与える。
          アクセス権: R  読み取り可能
                      C  変更(書き込み)可能
                      F  フルコントロール可能
  /R ユーザ名
          指定されたユーザのアクセス権を取り消す
          /E オプションと共に使用
  /P ユーザ名:アクセス権
          指定されたユーザのアクセス権を置き換える。
          アクセス権: N  なし
                      R  読み取り可能
                      C  変更(書き込み)可能
                      F  フルコントロール可能
  /D ユーザ名
          指定されたユーザのアクセスを拒否する。

複数の対象の指定で、ワイルドカードが使用可能。
複数のユーザの指定が可能。



[ 赤い玉の画像 ] 「ちょっと便利かもしれないTIPS」のメニューへ

[ 黒板消しとチョーク受けの画像 ]