LoginSignup
5
23

More than 5 years have passed since last update.

コマンドラインによるActiveDirectoryユーザーの作成方法

Last updated at Posted at 2017-08-22

概要

ActiveDirectoryにユーザーを追加するときにはGUIから行うのが一般的だけど、エクセルやCSVなんかで一覧をポンと渡されて後はヨロシクされる時がある。
で、大概にして手作業するにはちょっと...という人数が載っている。例えば1000ユーザーとか。
こんな数をGUIから手作業していると日が暮れるので、コマンドでさくっと登録するための手順をまとめておく。

検証環境:

  • OS : WindowsServer2012R2
  • フォレスト/ドメインレベル: WindowsServer2012R2
  • ドメイン名: sample.local

コマンドラインでActiveDirectoryオブジェクトを操作する方法

一括操作を説明する前に操作コマンドをまとめておく。

なお、コマンド上での操作はDN(識別名)が頻出するため、詳細は以下のURLを確認しておくこと。
https://msdn.microsoft.com/en-us/library/aa366101(v=vs.85).aspx

ActiveDirectoryユーザーを作成する

やろうと思えば1行で細かく設定されたユーザーを作ることができるけど、コマンドがすごく長くなるためなるべくシンプルな例を示す。それでも長い。

コマンド:
dsadd user "{ユーザーDN}" -display "{表示名}" -pwd "{パスワード}" -pwdneverexpires yes -upn "{ユーザーID}@{ドメイン名}"

例:
dsadd user "CN=test,CN=Users,DC=sample,DC=local" -display "テスト" -pwd "password" -pwdneverexpires yes -upn "test@sample.local"

例のコマンドを実行すると次のような状態で作成される。

  • ActiveDirectoryユーザーとコンピューター
    • sample.local
      • Users
        • test

細かい設定はあとで変更も可能なので、とりあえずこれで作成しておく。

参考URL:
https://technet.microsoft.com/ja-jp/library/cc731279(v=ws.10).aspx
https://technet.microsoft.com/ja-jp/library/cc732954(v=ws.10).aspx

ユーザーのプロファイルパスを指定する

移動プロファイルを指定しておきたい場合もある。その場合は次のコマンドで設定できる。

コマンド:
dsmod user "{ユーザーDN}" -profile "プロファイルパス"

例:
dsmod user "CN=test,CN=Users,DC=sample,DC=local" -profile "\\sample.local\profiles\test"

ActiveDirectoryグループを作成する

グループを沢山作るようなシチュエーションはあまりないけど、せっかく調べたので書いておく。

コマンド:
dsadd group "{グループDN}"

例:
dsadd group "CN=tests,CN=Users,DC=sample,DC=local"

参考URL:
https://technet.microsoft.com/ja-jp/library/cc754037(v=ws.10).aspx
https://technet.microsoft.com/ja-jp/library/cc732423(v=ws.10).aspx

グループにユーザーを参加させる

コマンド:
dsmod group "{グループDN}" -addmbr "{ユーザーDN}"

例:
dsmod group "CN=tests,CN=Users,DC=sample,DC=local" -addmbr "CN=test,CN=Users,DC=sample,DC=local"

グループからユーザーを脱退させる

コマンド:
dsmod group "{グループDN}" -rmmbr "{ユーザーDN}"

例:
dsmod group "CN=tests,CN=Users,DC=sample,DC=local" -rmmbr "CN=test,CN=Users,DC=sample,DC=local"

ActiveDirectoryユーザーを一括操作する

エクセルなどの表計算ソフトを使うことで、ユーザー作成が非常にラクになる。
ここでは、以下の要件を満たす操作バッチを作成するものとする。

  • ID・パスワード・氏名が一覧化したエクセル名簿データがある
  • フォルダリダイレクトをさせたい
  • フォルダリダイレクト先は\\sample.local\documents\ユーザーID
  • フォルダリダイレクト先は原則そのユーザーしかアクセスできないようにしたい

コマンド生成用ファイルを作る

Excelを起動して、各セルに以下の内容を入力する。

A1セル
user-id
B1セル
password
C1セル
表示名
D1セル
=IF(ISBLANK(A1),"","dsadd user ""CN="&A1&",CN=Users,DC=sample,DC=local"" -display """&C1&""" -pwd """&B1&""" -pwdneverexpires yes -upn """&A1&"@sample.local""")
E1セル
=IF(ISBLANK(A1),"","mkdir \\sample.local\documents\"&A1)
F1セル
=IF(ISBLANK(A1),"","icacls \\sample.local\documents\"&A1&" /grant:r "&A1&":(OI)(CI)(F)")

全部入力し終えたら、以下のような状態になっていることを確認する。

問題がなさそうであれば、D1:F1列を選択して選択範囲の右下にある■マークを掴んでビーッと下まで自動入力させる。
登録予定のユーザー数あたりまで引っぱっておけばとりあえずいいと思う。

名簿データを投入する

コマンド生成用ファイルのA列にユーザーID、B列にパスワード、C列に表示名をコピーして入力する。(1行目に書いてあるデータは上書きしてしまってかまわない。)
余計な書式とかはいらないので、右クリック→テキストのみ保持で文字データのみ貼り付けること。

バッチファイル化する

DEF列がそれぞれコマンドとなるので、適当にバッチファイルを作成してコピペする。
初めから大量のユーザーを作成するとミスがあった場合に大惨事になるので、2-3件でテストしておくこと。

useradd.cmd
@echo off

dsadd user "CN=test1,CN=Users,DC=sample,DC=local" -display "テスト1" -pwd "password" -pwdneverexpires yes -upn "test1@sample.local"
dsadd user "CN=test2,CN=Users,DC=sample,DC=local" -display "テスト2" -pwd "password" -pwdneverexpires yes -upn "test2@sample.local"
dsadd user "CN=test3,CN=Users,DC=sample,DC=local" -display "テスト3" -pwd "password" -pwdneverexpires yes -upn "test3@sample.local"

mkdir \\sample.local\documents\test1
mkdir \\sample.local\documents\test2
mkdir \\sample.local\documents\test3

icacls \\sample.local\documents\test1 /grant:r test1:(OI)(CI)(F)
icacls \\sample.local\documents\test2 /grant:r test2:(OI)(CI)(F)
icacls \\sample.local\documents\test3 /grant:r test3:(OI)(CI)(F)

pause

バッチファイルをドメインコントローラー上で実行する

適当な場所に作成したバッチファイルを置いて実行する。
正常に動作したことを確認できればOK。何かエラーが発生したらメッセージが表示されているはずなので、よく確認すること。

以上

5
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
23