ADユーザ移行手順

WindowsServer2012のAD環境からWindowsServer2012の別AD環境にユーザ移行する手順のメモです。

# ユーザのエクスポート
特定のOUからユーザ情報をエクスポートします。
環境に合わせて適宜OU名、ドメインを入れてください。

    csvde -u -f export_userlist.csv -r objectCategory=user -d "OU=<OU名>,DC=<ドメイン>,DC=<ドメイン>" 


# エクスポートしたファイルの加工
エクスポートされたファイルはこんな感じに。
 
    DN,objectClass,cn,sn,c,l,st,title,description,postalCode,postOfficeBox,physicalDeliveryOfficeName,telephoneNumber,givenName,distinguishedName,instanceType,whenCreated,whenChanged,displayName,uSNCreated,memberOf,uSNChanged,co,department,company,streetAddress,wWWHomePage,name,objectGUID,userAccountControl,badPwdCount,codePage,countryCode,badPasswordTime,lastLogoff,lastLogon,pwdLastSet,primaryGroupID,objectSid,accountExpires,logonCount,sAMAccountName,sAMAccountType,userPrincipalName,objectCategory,dSCorePropagationData,mail,mobile
    CN=田中 太郎,OU=Users,DC=test,DC=local,user,田中 太郎,田中,JP,XX区,東京都,ここは役職,ここは説明,123-4567,ここは私書箱,ここは事業所,03-XXXX-XXXX,太郎,"CN=田中 太郎,OU=Users,DC=test,DC=local",4,20181004020553.0Z,20181004020836.0Z,田中 太郎,12752,"CN=Users_Group,CN=Users,DC=test,DC=local",12761,日本,ここは部署,company,ここは番地,http://test.local,田中 太郎,X'd66195b68cef0446a3c7299c50af03b0',512,0,0,392,0,0,0,131830923533439239,513,X'01050000000000051500000045851c33e2f9110ab6f313fd56040000',9223372036854775807,0,tanaka,805306368,tanaka@test.local,"CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local",16010101000000.0Z,tanaka@test.local,090-XXXX-XXXX
    CN=test taro,OU=Users,DC=test,DC=local,user,test taro,test,,,,,,,,,,taro,"CN=test taro,OU=Users,DC=test,DC=local",4,20181004021430.0Z,20181004021430.0Z,test taro,12796,"CN=Users_Group,CN=Users,DC=test,DC=local",12801,,,,,,test taro,X'a71b1e0a76446d4f85e264fd0ac8c44f',66048,0,0,0,0,0,0,131830928706523834,513,X'01050000000000051500000045851c33e2f9110ab6f313fd57040000',9223372036854775807,0,test01,805306368,test01@test.local,"CN=Person,CN=Schema,CN=Configuration,DC=test,DC=local",16010101000000.0Z,,

このファイルをそのままインポートするとインポート出来ない情報も含まれているのでExcelなどでファイルをインポートして不要な列を削除し以下の要素にだけにします。
(Excel)

    DN,objectClass,cn,sn,c,l,st,title,description,postalCode,postOfficeBox,physicalDeliveryOfficeName,telephoneNumber,givenName,displayName,co,department,company,streetAddress,wWWHomePage,name,countryCode,sAMAccountName,userPrincipalName,mail,mobile
    "CN=田中 太郎,OU=Users,DC=test,DC=local",user,田中 太郎,田中,JP,XX区,東京都,ここは役職,ここは説明,123-4567,ここは私書箱,ここは事業所,03-XXXX-XXXX,太郎,田中 太郎,日本,ここは部署,company,ここは番地,http://test.local,田中 太郎,392,tanaka,tanaka@test.local,tanaka@test.local,090-XXXX-XXXX
    "CN=test taro,OU=Users,DC=test,DC=local",user,test taro,test,,,,,,,,,,taro,test taro,,,,,,test taro,0,test01,test01@test.local,,

移行先のドメインやOUが変わる場合は適宜OUやDCの値を置換してください。

# ユーザのインポート
加工したファイルをインポートします。
 
    csvde -i -f userlist.csv


# ユーザのプロパティの変更
インポートされたユーザはデフォルトでパスワード無しの無効化状態なのでPowerShellで設定変更します。
(Active Directoryモジュールを利用します)
 
```powershell

    #ユーザ移行に使ったCSVをインポート
    $userlist = Import-csv userlist.csv -Encoding Default 

    #アカウント有効化   
    $userlist.SAMaccountName | Get-ADuser | Set-ADuser -Enabled $true

    #パスワード変更
    $userlist.SAMaccountName | Get-ADuser |　Set-ADAccountPassword -NewPassword (ConvertTo-SecureString -AsPlainText "<パスワード>" -Force)

    #次回ログオン時にパスワード変更
    $userlist | Set-ADUser -ChangePasswordAtLogon $true

    #特定グループに追加
    Add-ADGroupMember -Identity <グループ名> -Members $userlist.SAMaccountName
```