Export-ADData | ||
---|---|---|
HOME |
どうも、Windowsの Active Directory からユーザやグループをエクスポートしてまた別の AD へインポートする、ニートでまともな道具が世の中にあまり存在しないようだ。そこで、そういう PowerShellスクリプト を一から作った。
GitHubの README から抜粋して日本語にしたものを以下に示す。
Export-ADData は、Active Directory (AD) のユーザーおよびグループをCSVファイルにエクスポートするための PowerShell スクリプトです。柔軟なエクスポートオプションを備えています。
Import-ADData は、エクスポートされたCSVファイルから AD ユーザーおよびグループを Active Directory にインポートするためのスクリプトです。
インポート先の AD は、エクスポート元と同じである必要はありません。異なるドメインベースを指定すると、自動的にパスを変換します。また、インポート時に必要な中間層の OU が存在しない場合、自動的に作成する機能を備えています。
当スクリプトの想定される使用方法としては、ドメインの基底を指定してエクスポートすることで、オブジェクトの必要な属性を失うことなく出力。必要に応じて、エクスポートされたCSVファイルを編集し、不要なエントリを削除するなどの調整を行ってからインポートに使用することも可能です。いくつかのユーザーにパスワードを設定したい場合は、ユーザーCSV に "Password" 列を追加し、パスワードを平文で記入してください (エクスポート時のCSVにはパスワード列はありません)。アカウントの "Enabled" フラグを復元するにはパスワードが必須であることに注意してください。
インポート時には、主に以下の 3 つのプランを想定しています。
Compare-ADCSV は、AD からエクスポートされた 2 つのCSVファイルを比較 するためのスクリプトです。インポート前後の検証に活用できます。
Check-ADUserPassword は、ユーザーのパスワードが 想定通りに設定されているか をチェックするためのシンプルなユーティリティスクリプトです。
ドメイン基底からユーザとグループをフォルダ "C:\ADExport" のCSVファイルにエクスポート
.\export-ADData.ps1 -DNPath "DC=mydomain,DC=local" -OutPath "C:\ADExport"
グループをCSVから別のドメイン基底へインポート(システムオブジェクトは除外)
.\import-ADData.ps1 -DNPath "DC=newdomain,DC=local" -GroupFile "C:\ADExport\Groups_mydomain_local.csv"
ユーザをCSVからドメイン上のOUへインポート。CSVファイル選択を誘導するダイアログが表示される
.\import-ADData.ps1 -DNPath "OU=unit,DC=newdomain,DC=local" -User