QA@IT

ActiveDirectoryのユーザー一括登録(csvdeコマンド)

18521 PV

Win2008r2でADを構築し、ユーザー情報の抜出(export)、一括登録(import)を
csvdeコマンドで練習しております。

C:\>csvde -u -f export.csv -r objectCategory=user

コマンドにより、なんとかCSV形式で、ADに登録されている情報を抜き出すことはできました。

exportしたファイルを基にしてimport用データーを作成したのですが、上手く行かない状態です。

登録するユーザー ⇒user03とuser04

import.csvの中身↓↓

DN,objectClass,cn,name,userAccountControl,sAMAccountName,sn,displayName,userPrincipalName
"CN=user03,OU=Test-OU,DC=test,DC=local",user,user03,user03,512,user03,user03,user03,user03@test.local
"CN=user04,OU=Test-OU,DC=test,DC=local",user,user04,user04,512,user04,user04,user04,user04@test.local

import.csvを実行すると。

C:\>csvde -i -f import.csv
"(null)" に接続しています
SSPI を使って現在のユーザーとしてログインしています
ファイル "import.csv" からディレクトリをインポートしています
入力ファイルを開くときにエラーがありました
0 個のエントリを正しく修正しました。
プログラムでエラーが発生しました
ログはファイルに書き込まれませんでした。ログ ファイルを生成するには、
-j オプションを使ってログ ファイルへのパスを指定してください。

という状態になってしまいます。

以下のサイトを参照して行っています。
http://itpro.nikkeibp.co.jp/article/COLUMN/20080125/292017/

どなたかご教授下さい。

回答

ご回答有難うございます。

userAccountControl列を削除し実行した結果、成功しました。

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

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

DNの部分を確認したいので エクスポートしたファイルのうち、Guestアカウントの行の最初の項目を提供してもらえますか?(二重引用符で括られている部分)

export.csvの中身↓↓(ちょっと長くなってしまいますが、お許し下さい)

DN,objectClass,cn,description,distinguishedName,instanceType,whenCreated,whenChanged,uSNCreated,memberOf,uSNChanged,name,objectGUID,userAccountControl,badPwdCount,codePage,countryCode,badPasswordTime,lastLogoff,lastLogon,logonHours,pwdLastSet,primaryGroupID,objectSid,adminCount,accountExpires,logonCount,sAMAccountName,sAMAccountType,objectCategory,isCriticalSystemObject,dSCorePropagationData,lastLogonTimestamp,showInAdvancedViewOnly,servicePrincipalName,sn,displayName,userPrincipalName
"CN=user01,OU=Test-OU,DC=test,DC=local",user,user01,,"CN=user01,OU=Test-OU,DC=test,DC=local",4,20140925100653.0Z,20140925100654.0Z,12773,,12779,user01,X'b8e2826f7deb5f46bcac7bf81bc1528f',512,0,0,0,0,0,0,,130561132140892009,513,X'010500000000000515000000de8bfa359e3000c86067282451040000',,9223372036854775807,0,user01,805306368,"CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local",,20140925100654.0Z;16010101000000.0Z,,,,user01,user01,user01@test.local
"CN=user02,OU=Test-OU,DC=test,DC=local",user,user02,,"CN=user02,OU=Test-OU,DC=test,DC=local",4,20140925100729.0Z,20140925100730.0Z,12781,,12787,user02,X'e6d792cb1385c041afe62f097d6ee026',512,0,0,0,0,0,0,,130561132500160640,513,X'010500000000000515000000de8bfa359e3000c86067282452040000',,9223372036854775807,0,user02,805306368,"CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local",,20140925100730.0Z;16010101000000.0Z,,,,user02,user02,user02@test.local

一応、importが成功し、ユーザーが作成されてはいますが、ちょっと不安です。。

編集 履歴 (1)
  • 元々ドメインにいたGuestアカウントなどと比べてDNの内容が問題なさそうなら大丈夫だと思います。
    個人的にCN=Usersがないのが気にはなっていますが。
    -
  • CN=Usersって必要でしょうか?赤本には、DN部分の記載方法で、CN=Usersは記載されていませんでした。。本来は必要でしょうか? -
  • 識別名ですので絶対に必要ということはないですが、私のWin2008R2環境でexportした場合cn=Usersが存在していました。現在の状態と合わせた方が良いのではないかと考えています。(なのでGuestアカウントがどう出たかを教えてほしかったのです)。 -
  • http://news.mynavi.jp/series/AD/028/ こちらの記事でもUsersやComputersは存在しますね。 -
  • http://technet.microsoft.com/ja-jp/library/cc732009(v=ws.10).aspx http://www.atmarkit.co.jp/fwin2k/win2ktips/622adredirect/adredirect.html このあたりを見ると、UsersやComputersコンテナにはポリシーの適用が大変なので利用せずに、 -
  • ポリシーの適用できるOUを作成しているという手順なのかもしれませんね。
    単にexportを参考にimport用csvを作るなら揃えた方がいいのかなと思った程度ですので赤本など参考情報の方に従ってください。
    -
  • 色々と、細かな点までアドバイスいただきありがとうございます。
    コンテナについては、GPOが適用できないということについて了解いたしました。

    今回、私の場合は、「ADのユーザーとコンピューター画面」に事前に
    「Test-OU」を作ってからユーザーの登録うようにしました。
    -

追記

書き忘れましたが、管理者コマンドプロンプトで実行しています。念のため。

追記ここまで


自分の環境用に少し直したcsvではうまくいきました。

環境は
Windows 2008 R2 x64 SP1,
さっきインストールして、AD入れてドメインコントローラにした程度です。

結論から言うと userAccountControl 列を削除して、DNを(私の環境に合わせて)直したファイルではうまくインポートできました。

直している過程でDNの部分も少し気になるところがありました。
DNの部分を確認したいので エクスポートしたファイルのうち、Guestアカウントの行の最初の項目を提供してもらえますか?(二重引用符で括られている部分)

なお、userAccountControlに指定しているパラメータ 512 が意味するのはNORMAL_ACCOUNTなので無くても特に問題はないと思います(提示されたサイトでも指定していないようですし)


提供できない場合は私の環境は以下の様になっていますので参考にしてください。

コンピューター名: qait3905
ドメイン名: example.co.jp

DN,objectClass,cn,name,sAMAccountName,sn,displayName,userPrincipalName
"CN=user03,CN=Users,DC=example,DC=co,DC=jp",user,user03,user03,user03,user03,user03,user03@example.co.jp
"CN=user04,CN=Users,DC=example,DC=co,DC=jp",user,user04,user04,user04,user04,user04,user04@example.co.jp
C:\work>csvde -i -f xxx.csv
"(null)" に接続しています
SSPI を使って現在のユーザーとしてログインしています
ファイル "xxx.csv" からディレクトリをインポートしています
エントリを読み込んでいます...
2 個のエントリを正しく修正しました。

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

ちなみに userAccountControlありだと以下の様なエラーとなりました

C:\work>csvde -i -f xxx.csv
"(null)" に接続しています
SSPI を使って現在のユーザーとしてログインしています
ファイル "xxx.csv" からディレクトリをインポートしています
エントリを読み込んでいます.
エラー (行 2: 実行しようとしません )
サーバー側のエラー "パスワードを更新できませんでした。新しいパスワードとして指定
された値は、パスワードの長さ、複雑さ、または履歴に関するドメインの要件を満たして
いません。"
0 個のエントリを正しく修正しました。
プログラムでエラーが発生しました
ログはファイルに書き込まれませんでした。ログ ファイルを生成するには、
-j オプションを使ってログ ファイルへのパスを指定してください。
編集 履歴 (1)
ウォッチ

この質問への回答やコメントをメールでお知らせします。