FC2ブログ

--------

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2016-08-29

csvdeコマンドでドメインのオブジェクトを別のドメインにインポートする

ドメインのオブジェクト(OU、ユーザ、グループ)を
別のドメインにインポートしたいんだよねーという要望ってけっこうあると思います。
csvdeコマンドでできるぜ!ってのはけっこう見つけたんですけど
実際にやってみるとうまくいかないことばかり。。。
色々試行錯誤して、とりあえずできるようになったっぽいので備忘録。

今回は新規ドメインにインポートする想定です。

エクスポート元ドメイン…sample1.co.jp
インポート先ドメイン…sample2.co.jp

としておきます。

また、ユーザが次回ログイン時にパスワードの変更を強制されるような動きになります。
パスワードはエクスポートできないので必須の動きかと。
もしパスワードをユーザ作成と同時にインポートしたいなら
ldifファイルに手打ちするしかないです。。。

【エクスポート】
コマンドプロンプトで作業ディレクトリに移動し、下記コマンドを実行する。
> csvde -m -u -f export_user.csv -r objectClass=user -n
> csvde -m -u -f export_ou.csv -r objectClass=organizationalUnit -n
> csvde -m -u -f export_group.csv -r objectClass=group -n

-mでインポート可能オブジェクトのみエクスポート
-uでUnicodeでエクスポート(必須)
-fでエクスポートするファイル名を指定して
-rでエクスポート対象の属性を指定します。
-nはバイナリデータはエクスポートしないっていうオプションらしいです。
インポート時にエラー出そうなので付けときます。

【インポート】
■export_user.csvファイルの修正
①export_user.csvをExcelで開く。この際、下記手順にて実施する。
・Excelを起動
・[ファイル] > [開く] よりexport_user.csvを選択
・カンマ区切りでインポートする。
 テキストファイルウィザード3/3で「accountExpires」属性のデータ形式を
 「文字列」にする。
※データ形式を変更しないとaccountExpires属性の値が勝手に丸め込まれてしまい
 インポートで失敗する

②objectClass=userとしてエクスポートしたが、
 なぜかComputer属性もエクスポートされていることがある。
 objectClass列が「Computer」の行を削除する。

③ビルトインのアカウントを削除する。
 cn属性の値が「administrator」、「krbtgt」、「Guest」の行を削除。
 重複する値があるとエラーが出ちゃいます。

④「userAccountControl」属性の値を全て「512」に変更する。
 パスワードの有効期限を切らすような設定です。

⑤DC=sample1,DC=co,DC=jpの値を
 DC=sample2,DC=co,DC=jpに置換する。

⑥export_user_edited.csvとして保存する。

⑦メモ帳でexport_user_edited.csvを開く。
 [ファイル] > [名前をつけて保存] から「文字コード」を
 「Unicode」として保存する。
 ファイル名はexport_user_edited_unicode.csvとする。

■export_group.csvファイルの修正
①export_group.csvをメモ帳で開く。

②ビルトインのグループを削除する。
 「Remote Desktop Users」~「Denied RODC Password Replication Group」までの行を削除。

③DC=sample1,DC=co,DC=jpの値を
 DC=sample2,DC=co,DC=jpに置換する。

④同様にUnicodeとして保存する。
 ファイル名はexport_group_edited_unicode.csvとする。

■export_ou.csvファイルの修正
①export_ou.csvをメモ帳で開く。

②ビルトインのOUを削除する。
 「Domain controllers」の行のみ削除。

③DC=sample1,DC=co,DC=jpの値を
 DC=sample2,DC=co,DC=jpに置換する。

④同様にUnicodeとして保存する。
 ファイル名はexport_ou_edited_unicode.csvとする。

■パスワードポリシーの変更
Default Domain Policyより
「パスワードのポリシー」の「パスワードの長さ」を0文字、
「パスワードは複雑さの要件を満たす必要がある」を「無効」に設定する。

その後下記コマンドを実行
> gpupdate /force

■インポート
作業ディレクトリに移動して下記コマンドを順番に実行し、オブジェクトをインポートする。
> csvde -i -u -f export_ou_edited_unicode.csv
> csvde -i -u -f export_user_edited_unicode.csv
> csvde -i -u -f export_group_edited_unicode.csv


【ユーザのログイン】
インポートしたユーザでの初回ログイン時には、パスワードを空欄にしてログインする。
パスワードの変更を求められるので任意のパスワードに変更する。

以上になります。
文字コードとかインポート不可属性とかでめちゃめちゃハマりましたw

スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。