In this blog post, I will show you how I change the UPN of multiple Active Directory users using PowerShell.
In my case, I have a list of Active Directory user that I need to change their UPN from company a to company b.
Because I would like to automate this process, I am using a CSV file and a PowerShell script to apply the changes.
Data
In this demonstration, I am using a CSV file with a list of samaccountname of users that I need to change their UPN as shown below.
loginid samaccountname01 samaccountname02
Code
the code below, takes the old and new UPNs and store them in variables and replace the UPNs.
$oldSuffix = 'myolddomain.local' $newSuffix = 'newdomain.local' Import-CSV .\List.csv | ForEach-Object { $usr = get-aduser $_.loginid |Select userprincipalname, samaccountname $newUpn = $usr.UserPrincipalName.Replace($oldSuffix,$newSuffix) Set-ADUser -identity $usr.samaccountname -UserPrincipalName $newUpn -Verbose }
Check after change
To check if the code had worked.
Import-Csv .\List.csv | Foreach {Get-ADUser $_.loginid -Properties * | Select SAMAccountName, displayname, UserPrincipalName, EmailAddress}