図1 ldifdeコマンドでオブジェクトのインポートを実行した画面
図1 ldifdeコマンドでオブジェクトのインポートを実行した画面
[画像のクリックで拡大表示]
図2 インポートしたユーザー・オブジェクトの内容を確認した画面
図2 インポートしたユーザー・オブジェクトの内容を確認した画面
[画像のクリックで拡大表示]
図3 ユーザー情報の追加を指定したLDIFファイル
図3 ユーザー情報の追加を指定したLDIFファイル
[画像のクリックで拡大表示]
図4 telephoneNumber属性について置き換え,追加,削除を順に実行するLDIFファイル
図4 telephoneNumber属性について置き換え,追加,削除を順に実行するLDIFファイル
[画像のクリックで拡大表示]
図5 八つのオブジェクトを削除するLDIFファイル
図5 八つのオブジェクトを削除するLDIFファイル
[画像のクリックで拡大表示]
図6 オブジェクトのRDN(相対識別名)を変更するLDIFファイル
図6 オブジェクトのRDN(相対識別名)を変更するLDIFファイル
[画像のクリックで拡大表示]

ldifde -i -u -f [LDIFファイル名]

 新たにActive Directoryドメインを構築する場合,まず全ユーザーの情報を登録することが必要です。ところが,数百人というユーザーがいる場合は,GUI画面で一人ひとりの情報を設定していくのは大変な時間がかかってしまいます。こんなときは,ldifdeコマンドを使えば,あらかじめ作成しておいたLDIF形式のファイルの情報を一括で登録や変更・削除を行うことができます(図1,図2)。

 実行するコマンドは単純ですが,読み込むLDIFファイルの構文は多少複雑になります。オブジェクトを追加する場合,以下のようにDN名およびchangetypeに「add」を指定した上で,属性名と値を必要な数だけ設定します。

dn:オブジェクトのDN
changetype:add属性名:属性の値

 オブジェクト内容の変更をする場合は,DN名に続いてchangetypeに「modify」を指定します。該当する属性名をどう変更するかによって,その後の記述が変わります。空欄の属性に値を加える場合は,「add:値を追加する属性名」と追加指定し,必要な属性名と値を設定します。一方,属性に設定された値を変更したい場合は,「replace:値を置き換える属性名」と追加指定し,必要な属性名と値を設定します(図4)。属性に設定した値を削除したい場合は,「delete:値を削除する属性名」と追加指定し,属性値が複数あるときに選択したい場合は属性名と属性値を設定します(ない場合その属性値の全部が削除されます)。なお,それぞれの設定の最後にセパレータ文字として「-」(ハイフン)が必ず必要です。

 オブジェクトを削除する場合は,DN名を指定した下にchangetypeとして「delete」を指定します(図5)。

 オブジェクトのRDN(相対識別名)を変更する場合は,DN名に続いてchangetypeとして「modrdn」を指定してから,新しいRDNを指定します(図6)。なお,deleteoldrdn(以前のRDNを属性に保存するかどうか)の設定は「1=保存しない」と設定する必要があります。

 なお,ldifdeコマンドでアカウントをインポートした場合,特に設定しない場合アカウントは無効の状態で登録されます。ldifdeではパスワードのインポートにはいくつかの条件が必要ですが,他の方法(net userやdsmod userコマンド,ADSIスクリプト)でパスワード登録とアカウントの有効化を設定し直す方法もあります。dsquery *コマンドからdsmod userコマンドへのパイプラインによる方法については,詳細は「csvdeコマンドで複数のユーザー・アカウントを一括登録する」を参照してください。

 このような設定を行いたくない場合,一時的にActive Directoryの「ドメイン・セキュリティ・ポリシー」から設定できる「パスワードのポリシー」の「パスワードの長さ」を0文字,「パスワードは,複雑さの要件を満たす必要がある」を「無効」に設定し,userAccountControl属性値を「512」とすれば,「パスワードなし,ユーザーは次回ログオン時にパスワードの変更が必要」の状況で登録することは可能です。詳細は「csvdeコマンドで複数のユーザー・アカウントを一括登録する」を参照してください。