年度替りなど、時として大量のユーザを登録したい場合が有ります。
一人一人を手で登録するのはとても大変ですが、
Windows2000の場合、リソースキットCD-ROMに収録されている
addusers コマンドを利用すると、
予め登録したいユーザ名を列挙したCSV形式のファイルを作成しておき、
そのコマンドからファイルを呼び出す事で、ユーザを一括して登録することが出来ます。
このコマンドは結構多機能で以下の様なオプションが有るのですが、
ユーザの一括登録には、その内の /c と /p 、/s が関係します。
filenameは作成したcsvファイルの名前です。
別に作成するCSVファイル(上記の例では newseitofile.csv にあたる)の形式は、以下の通りです。
[user]
041101,風 信子,hogehoge,,Z:,\\seitoserver\041101,,seitoscript.bat
041102,浜 裕子,hirehare,,Z:,\\seitoserver\041102,,seitoscript.bat
(以下、人数分)
ちなみに、グループ設定については、私的には、 一つの組織単位に放り込んでしまえば、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
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 ユーザ名
指定されたユーザのアクセスを拒否する。
複数の対象の指定で、ワイルドカードが使用可能。
複数のユーザの指定が可能。