Active Directory Windows

CSVを利用してActive Directoryにユーザーを一括登録するコマンド

2013年12月2日

activedirectory-batch-registration-thum

Windowsドメインを運用しているとActive Directoryに一括してユーザーアカウントを追加したい場合がありますよね。Active Directory運用開始前のユーザーアカウント事前登録や、異動時期のユーザーアカウントの変更などなど...そういった時に手作業での登録は非常に時間が掛かります。また誤った情報を登録してしまうこともあるかもしれません。
「ユーザーアカウント登録の無駄な時間を省きたい、ミスをなくしたい。」
今回は、そんな作業時に覚えておくと便利なActive Directoryにユーザーアカウントを一括登録するための方法を紹介します。以下のOSを利用したActive Directory環境で動作することを確認しています。

  • Windows Server 2008 R2
  • Windows Server 2012 R2
  • Windows Server 2016

是非、本記事で紹介している方法で、ユーザーアカウント登録作業に掛かる時間を節約してください。

1. Active Directory へのアカウント一括登録 概要

WindowsではActive Directoryにユーザーを登録する"dsadd"コマンドが用意されています。本記事ではdsaddを利用してユーザーアカウントの一括登録を行います。一括登録の手順は大きく、以下の3つになります。

作業手順

  1. 作成したユーザーアカウントが所属するグループの作成(必要な場合のみ)
  2. ユーザーアカウントの登録に必要な情報を記載したCSVファイルを作成
  3. CSVファイルを読み込むようにオプションを付けて、dsaddコマンドを実行

作業自体はそれ程難しくありませんが、コマンドのオプションが長くなりますので、実行前にコマンドの見直しをすることをお勧めします。もし失敗しても、誤って作成されたユーザーアカウントを削除して何度でもやり直しができますので、安心して作業を進めてください。
それでは次章から、具体的な作業手順を説明していきます。

2. Active Directoryの環境について

本章ではActive Directoryへのユーザーアカウント一括登録を行う際に利用した環境について紹介します。利用しているOSとActive Directoryの基本的な構成については以下の通りです。

2-1. 対応しているOS

本記事で紹介するユーザーアカウントの一括登録についてはOSとしてWindows Server 2016を利用しています。
Windows Server 2016以外でも、以下のOSを利用したActive Directory環境で動作することを確認しています。

  • Windows Server 2008 R2
  • Windows Server 2012 R2

未検証ですがWindows Server 2019でも動作すると思われます。

2-2. 想定するActive Directoryの環境

ユーザーアカウントの一括登録を行うActive Directoryの想定している環境は以下のような形になります。Windows Server 2016でのActive Directory環境構築の手順を紹介した記事

Windows
windowsserver2016-ad-setting-top3
Windows Server 2016 Active Directoryのインストールと設定手順を紹介

Windows Server 2016に関する2つの記事でWindows Server 2016の基本セットアップまでを説明しました。 本記事ではセットアップが完了した環境を利用して、Windowsサ ...

でも環境について詳細に記載していますので、合わせて参考にして下さい。

windowsserver2016-ad-setting-network

Active Directory環境 構成

  • ドメインの構成:シングルドメイン
  • ルートドメイン名(DNS):ad.rem-system.com
  • ドメイン名(NetBIOS名):REM-SYSTEMを設定
  • フォレストモード:WindowsServer2016
  • ドメインモード:WindowsServer2016

この環境を想定して設定を進めていきます。

3. グループの作成

本章ではユーザーアカウントの追加時に参加するグループを作成する手順を紹介します。参加するグループを指定しない場合には本章の手順は不要です。アカウントの作成時にグループを指定しない場合にはデフォルトで"Domain Users"グループに参加します。

3-1. "Acitve Directory ユーザーとコンピュータ"でのグループ作成

Active Directory上のグループについてはGUIの管理ツール「Acitve Directory ユーザーとコンピュータ」かコマンドから作成することができます。
本章では管理ツール「Acitve Directory ユーザーとコンピュータ」を利用したグループの作成を行います。
「Windowsメニュー」「Windows管理ツール」から「Acitve Directory ユーザーとコンピュータ」を起動します。

ad-useraccount-add-01

「Users」を右クリック、「新規作成」から「グループ」を選択します。

ad-useraccount-add-02

「新しいオブジェクト-グループ」画面が開きます。グループ名として"test-group"を指定しました。任意のグループ名を入力してください。グループ名(Windows2000より前)については自動的に入力されます。

ad-useraccount-add-03

"グループのスコープ""グループの種類"はデフォルトのままにします。(汎用的なグループでは変更は不要です。)
名前と設定を確認して「OK」をクリックします。グループが作成されます。

ad-useraccount-add-04

作成されたグループが表示されない場合にはF5キーで最新の表示に更新するか、「最新の情報に更新」ボタンをクリックしてみて下さい。これで"Acitve Directory ユーザーとコンピュータ"でのグループ作成は完了です。

3-2. "dsadd group"コマンドでのグループ作成

Active Directoryへのグループ作成は管理ツール以外に"dsadd"コマンドでも行うことができます。本章では参考として"dsadd group"でコマンドプロンプトからグループを作成する手順も紹介しておきます。
「Windowsメニュー」から「コマンドプロンプト(管理者)」を起動します。

2019-07-13_16h20_04

コマンドプロンプトが起動します。
dsadd groupは以下のように利用します。(オプションは抜粋)

dsadd group "cn=グループ名,オブジェクトの識別子(DN)" -scope (スコープオプション)

本記事で利用しているActive Directory環境のUsers以下にグローバルグループを作成したい場合には以下のように実行します。

> dsadd group "cn=test-group,cn=Users,dc=ad,dc=rem-system,dc=com" -scope g

実際にコマンドプロンプトから実行した結果は以下になります。

ad-useraccount-add-05

dsadd 成功:オブジェクト識別子(DN)と表示されればグループの作成は成功しています。

4. ユーザーアカウント登録用CSVの作成

前章まででメンバーとして追加するグループの作成まで完了しましたので、本章ではユーザーアカウントを登録するための情報を記載したCSVファイルを作成する手順を紹介します。

4-1. CSVファイルのフォーマット

一括登録したいユーザーアカウントの情報を記載したCSVファイルのフォーマットはタブ区切りにして、以下の項目を順番で一行に一ユーザーアカウント分を記載します。

  1. 登録先のオブジェクト識別子(DN)
  2. ユーザーアカウント名
  3. ユーザーのパスワード
  4. 表示名
  5. 参加するグループ

上記を一行に記載した場合には以下のようになります。

1.登録先 2.アカウント名 3.パスワード 4.表示名 5.参加するグループ(参加する場合のみ)

例えばtest1というユーザーアカウントをActive Directory"ad.rem-system.com"のグループ"test-group"に作成する場合には

"cn=Users,dc=ad,dc=rem-system,dc=com" test1 3!bntso テスト1 test-group

という形で記載します。
※グループは指定しない場合"Domain Users"グループに所属します。
ユーザーのパスワードはデフォルトのセキュリティポリシーでは複雑なパスワードを必要とします。(セキュリティポリシーの変更で、無効にできます。)ここではポリシーに対応するために8文字以上で、記号と数字を含んだパスワードを指定しています。

4-2. CSVファイルの作成

項目4-1. の内容を元にユーザーアカウント用CSVファイルを作成してみます。テスト用として2アカウントを追加します。作成するユーザーアカウントの設定項目は以下のようになります。
test1ユーザー

  1. 登録先のオブジェクト識別子(DN):"cn=Users,dc=ad,dc=rem-system,dc=com"
  2. ユーザーアカウント名:test1
  3. ユーザーのパスワード:3!bntso
  4. 表示名:テスト1
  5. 参加するグループ:test-group

test2ユーザー

  1. 登録先のオブジェクト識別子(DN):"cn=Users,dc=ad,dc=rem-system,dc=com"
  2. ユーザーアカウント名:test2
  3. ユーザーのパスワード:8?bhlo5
  4. 表示名:テスト2
  5. 参加するグループ:test-group

グループについては、項目3. で作成した"test-group"というセキュリティグループへ参加する形にしました。
この情報をWindowsのメモ帳やサードパーティーのテキストエディタを使って記載します。本記事ではメモ帳を利用して作成します。メモ帳に記載したCSVファイルの内容は以下の通りです。

"cn=Users,dc=ad,dc=rem-system,dc=com" test1 3!bntso テスト1 test-group
"cn=Users,dc=ad,dc=rem-system,dc=com" test2 8?bhlo5 テスト2 test-group

メモ帳に記載すると以下のようになります。

ad-useraccount-add-05

作成したファイルをファイル名"adduser.csv"としてCドライブの直下に保存します。

ad-useraccount-add-06

もしアクセス権のエラーでCドライブ直下にファイルが作成できない場合には任意の場所にファイルを保存して下さい。これでユーザーアカウント登録用CSVファイルの作成は完了です。

5. Active Directoryへのユーザーアカウント一括登録

本章ではActive Directoryへユーザーアカウントを登録するための"dsadd"コマンドと、一括登録するための手順について紹介していきます。コマンドの実行についてはPowerShellだと文法が異なりエラーになりますので、コマンドプロンプトから実行を行って下さい。

5-1. dsaddコマンドの利用方法

Active Directoryにユーザーアカウントを追加するためのコマンドは"dsadd"になります。項目3-2. でdsaddを利用したグループの登録について説明していますが、ユーザーアカウントの登録には指定するパラメーターが異なりますので、よく使うパラメーターを元に利用方法を説明します。
項目4-2.で記載したパラメーターでユーザーアカウントを登録するためには以下のように指定を行います。

dsadd user "cn=ユーザー名,オブジェクトの識別子(DN)" -pwd パスワード -samid アカウント名 -upn アカウント名@ドメイン名 -display 表示名 -memberof "メンバーのオブジェクト識別子(DN)"

例えばtest1ユーザーを作成したい場合には以下のように実行します。

> dsadd user "cn=test1,cn=Users,dc=ad,dc=rem-system,dc=com" -pwd 3!bntso -samid test1 -upn test1@ad.rem-system.com -display テスト1 -memberof "cn=test-group,cn=Users,dc=ad,dc=rem-system,dc=com"

実際にコマンドプロンプトから実行した結果は以下になります。

5-2. dsaddコマンドの実行

dsaddコマンドでのユーザーアカウント登録方法が理解できたところで、項目4-2. で作成したCSVファイルを利用してユーザーアカウントの一括登録を行います。
dsaddを実行するためにコマンドプロンプト(管理者)を起動します。

ad-useraccount-add-07

CSVファイルに記載したユーザーアカウントをdsaddコマンドで一括登録する場合は、以下のように実行します。
コマンドは長いのでテキストファイルなどに貼り付けてから実行することをお勧めします。

for /f "tokens=1-5" %A in (C:\adduser.csv) do dsadd user "cn=%D,%A" -pwd %C -samid %B -upn %B@ad.rem-system.com -display %D -memberof "cn=%E,dc=ad,dc=rem-system,dc=com"

※tokensはCSVのカラム数を記載します。
adduser.csvファイルをCドライブ直下以外に保存している場合には、(C:\adduser.csv)を保存している場所に変更して下さい。
コマンドプロンプトに貼り付けると以下のようになります。

ad-useraccount-add-08

実行するとユーザーアカウントの登録が始まります。アカウント事に登録に成功した旨、メッセージが表示されます。

2019-07-13_16h28_24

エラーや失敗が表示されずに、全てのアカウントで”成功”が表示されればユーザーアカウントの登録は完了です。

5-3. ユーザーアカウント登録の確認

ユーザーアカウントが登録されていることを、管理ツール「Active Directory ユーザーとコンピューター」から確認します。「Windowsメニュー」「Windows管理ツール」から「Acitve Directory ユーザーとコンピュータ」を起動します。

ad-useraccount-add-01

「Users」をクリックして左ペインにユーザーが表示されることを確認します。

ad-useraccount-add-09

グループについても確認します。

ad-useraccount-add-10

指定したグループに参加出来ていることが確認できます。これでユーザーアカウント登録の確認は完了です。
もし登録されたユーザーが表示されない場合にはF5キーで最新の表示に更新するか、「最新の情報に更新」ボタンをクリックしてみて下さい。

5-4. パスワードを無期限にして一括登録を行う場合

ユーザーアカウントのパスワード有効期限を無期限にして、一括登録を行いたい場合には"-pwdneverexpires yes"パラメーターを追加してコマンドを実行します。
具体的には、以下のようなコマンドになります。

for /f "tokens=1-5" %A in (C:\adduser.csv) do dsadd user "cn=%D,%A" -pwd %C -pwdneverexpires yes -samid %B -upn %B@ad.rem-system.com -display %D -memberof "cn=%E,dc=ad,dc=rem-system,dc=com"

実行した結果は以下のようになります。

ad-useraccount-add-11

"-pwdneverexpires yes"を付けて登録したユーザーアカウントのプロパティを確認してみます。

ad-useraccount-add-12

アカウントオプションの「パスワードを無期限にする」にチェックが入った状態になっていることが確認できます。パスワードの有効期限はマイクロソフトでも推奨していませんので、こちらを利用したほうが良いかもしれません。

6. まとめ

本記事に記載した方法でのユーザーアカウント登録はActive Directoryへの初期ユーザー登録に利用すると、時間の短縮やオペレーションミスを防ぐことが出来ます。比較的簡単に実行できますので、是非、使ってみて下さい。登録に失敗した場合のユーザーアカウント削除は「Active Directory ユーザーとコンピューター」から削除を実行するだけですので、失敗してもすぐにやり直しができます。
本記事で紹介したdsaddコマンドには、他にも色々なオプションが用意されています。こちらも調べてみると面白い使い方が見つかるかもしれません。

レムシステムでは、ブログで紹介した設定ができない場合や、利用中のサーバー・ネットワークについての相談を受け付けています。利用中のシステムやセットアップでお困りの点がございましたら、お気軽にご相談ください。

メールでのお問い合わせ

メールフォームからシステムの
知りたいことや問題点をお問い合わせ

メールで問い合わせる

電話でのお問い合わせ

電話でお気軽にお問い合わせください
(受付時間:平日10:00〜18:00)

053-525-7357

  • この記事を書いた人
  • 最新記事
レムシステム

小村定

SIerでIT系インフラの設計と構築を経験したのちに独立、「レムシステム株式会社」を設立する。インフラ系エンジニア歴20年の経験を活かしてITに関わる課題解決や効率化に取り組む日々を送っている。

Copyright© レムシステム エンジニアブログ , 2019 All Rights Reserved.