Bulk Import Active Directory User Properties with Windows PowerShell
Recently I had the impulse to populate existing AD user object property fields with phone numbers, titles, companies, and office; however, I wanted to use PowerShell to bulk import instead of the old ldifde method or manual labor. It was actually quite easy, but it does require some time massaging the CSV file in Excel.
- First, export a CSV containing the users and fields you want to update (it will be our template). Our anchor is going to be the SID because it is guaranteed to be unique across the forest.
Get-ADGroupMember "UserGroup" | get-aduser -Properties samAccountName, name, sid, telephoneNumber, mobile, title, Company, physicalDeliveryOfficeName | Select-Object samAccountName, name, sid, telephoneNumber, mobile, title, Company, physicalDeliveryOfficeName | export-csv users-to-update.csv -NoTypeInformation
- Open that file up in Excel and start populating your blank columns. Feel free to sort it however you like.
- Now the fun part. It’s time to import our populated CSV file back into Active Directory. The Set-ADUser cmdlet will use the Replace switch so that data will be replaced if it already exists. Remember, the Identity (
$_.sid
) is our anchor which will match the CSV data to the AD user object.
Import-Csv -Path "users-to-update.csv" | ForEach-Object {Set-ADUser -Identity $($_.sid) -Replace @{telephoneNumber=$($_.telephoneNumber); mobile=$($_.mobile); title=$($_.title); Company=$($_.Company); physicalDeliveryOfficeName=$($_.physicalDeliveryOfficeName)}}
Since you’ve saved so much time updating your user objects, you can go back to playing Galaga (^_^))))))))…