この特集のトップページへ

Deployment of Active Directory 3... オブジェクトの作成と管理
オブジェクトの一括登録

●CSVDEコマンドの実行
 データとなるCSVファイルを作成したら,CSVDEコマンドを使って,そのファイルをActive Directoryにインポートする。ただしそのまえに,ユーザーオブジェクトを作成するコンテナが存在するかどうかを確認してほしい。絶対識別名で指定されているコンテナが存在しないと,CSVDEコマンドはエラーは生じて処理を中断する。コマンドをくり返し実行し,存在しないコンテナを随時追加してもかまわないのだが,あまりスマートな方法とはいえない。できるだけ,必要なコンテナはあらかじめ作成しておくようにしよう。OUの数が少ないのであれば[Active Directoryユーザーとコンピュータ]管理ツールで作成してもかまわないし,OUの数が多いのであればOUの階層構造を定義したCSVファイルを別途用意してCSVDEコマンドで一括登録してもよい。

 必要なOUを作成したら,CSVDEコマンドを実行し,Active Directoryにデータをインポートする。たとえば,Administratorとしてログオンしているドメインに対してinput.csvファイルをインポートするのであれば,次のようにしてCSVDEコマンドを実行する。


C:\WINNT\temp > CSVDE -i -f input.csv
"(null)" に接続しています
SSPI を使って現在のユーザーとしてログインしています
ファイル "input.csv" からディレクトリをインポートしています
エントリを読み込んでいます...........
10 個のエントリを正しく修正しました。

コマンドが正しく完了しました

 CSVファイル中に不適当な属性や属性値が定義されていると,CSVDEコマンドはエラーメッセージを表示して処理を中断する。たとえば,“そのような属性はありません”と表示される場合は,1行目のヘッダ行で定義した属性名に誤りがある。“そのようなオブジェクトはありません”と表示される場合には,絶対識別名で与えたコンテナ(OUなど)が存在しないと思われる。“既に存在します”と表示される場合には,同じ識別名のオブジェクトか,あるいは同じダウンレベル名のユーザーオブジェクトが,すでにActive Directoryに登録されている。エラーが発生した行のデータは,カレントフォルダ上にcsv.errというファイル名で保存されているので,参考にしてほしい。また,オブジェクトの登録状況も,同じくカレントフォルダ上にcsv.logというファイル名で保存されている。

注意 エラーが発生したときに表示される行番号は,CSVファイルのデータレコード番号ではなく,ファイル中の絶対行番号である(つまり,1行目のヘッダ行も含めてカウントする)。ただし,ヘッダ行に間違いがある場合でも,エラーが発生するのは2行目以降のデータレコードなので,注意してほしい。

 ところで,CSVDEコマンドの実行途中でエラーが発生した場合,同じCSVファイルを利用して再度Active Directoryにデータをインポートしようとしても,一部のオブジェクトがActive Directoryに登録されてしまっているため,“既に存在します”というエラーが発生してオブジェクトを登録できないことがある。このような場合には,-kオプションを指定してCSVDEコマンドを実行する。このオプションを指定すると,致命的できないエラー行をスキップしてインポートを続行することができる。

 CSVDEコマンドの処理が無事に終了したら,[Active Directoryユーザーとコンピュータ]管理ツールを起動し,ディレクトリの内容を確認してみよう。すでに[Active Directoryユーザーとコンピュータ]管理ツールを起動させている場合には,変更内容を管理ツールに反映させるため,コンソールツリーのドメイン名を右クリックし,表示されたメニューから[最新の情報に更新]を選択してほしい。CSVファイルからインポートしたユーザーオブジェクトが登録されていることを確認できるはずだ。

Fig.51 CSVDEコマンドで登録されたユーザーオブジェクト
fig51.gif

 なお,CSVDEコマンドを利用する場合には,Active Directoryにあらかじめいくつかのオブジェクトを登録しておき,それをCSVファイルに出力して内容を確認しておくとよい。Active DirectoryのオブジェクトをCSVファイルにエクスポートするには,次のようにする。

CSVDE -f output.csv

 CSVDEコマンドは,抽出するオブジェクトの種類を限定したり,抽出または入力する際に文字列を置換したりといった具合に,処理内容を細かく制御することもできる。コマンドラインオプションの一覧を掲載しておくので,参考にしてほしい。

Table 15 CSVDE(CSV Directory Exchange)コマンドのオプション一覧
汎用オプション 解説
-i インポートモードにする(デフォルトはエクスポートモード)
-f ファイル名 入力ファイル名または出力ファイル名
-s サーバー名 接続するサーバー名(デフォルトはログオン先のドメインのドメインコントローラ)
-v 詳細モードにする
-c 文字列1 文字列2 文字列1を文字列2で置換する
-j フォルダ名 ログファイルの場所を指定する(デフォルトはカレントフォルダ)
-t ポート番号 ポート番号(デフォルトはLDAP標準の389。グローバルカタログは3268)
-u Unicode形式で入出力する
-? ヘルプを表示する
出力オプション 解説
-d 絶対識別名 LDAPで検索対象とするルートを指定する(デフォルトは名前付けコンテキスト)
-r フィルタ LDAPで検索するときのフィルタ条件を指定する(デフォルトは“(objectClass=*)”。つまり,すべてのオブジェクトクラスを抽出する)
-p 検索範囲 検索範囲を指定する(Base,OneLevel,Subtree)
-l 属性リスト LDAPで検索する属性の一覧をカンマで区切って列挙する
-o 属性リスト LDAPで検索するときに抽出しない属性の一覧をカンマで区切って列挙する
-g ページ検索を実行しない
-m ObjectGUID,objectSID,pwdLastSet,samAccountTypeなど,Active Directoryのオブジェクトだけに適用される属性を省く
-n バイナリ値を省略する
入力オプション 解説
-k Constraint ViolationエラーとObject Already Existsエラーを無視してインポートを続行する
prevpg.gif Deployment AD-3 13/13