Update-UserUPN.psm1
Function Update-UserUPN { [CmdletBinding(DefaultParameterSetName = 'UsingSamAccountName')] param ( [Parameter(Mandatory, ParameterSetName = 'FromOU')] [string]$OU, [Parameter(Mandatory, ValueFromPipeline, ParameterSetName = 'UsingSamAccountName', Position = 0)] [string]$SamAccountName ) Process { if ($OU) { $users = Get-ADUser -Filter * -SearchBase $OU -Properties EmailAddress foreach ($user in $users) { Set-ADUser -Identity $user.$SamAccountName -UserPrincipalName $user.EmailAddress } } elseif ($SamAccountName) { $user = Get-ADUser -Identity $SamAccountName -Properties EmailAddress Set-ADUser -Identity $user.SamAccountName -UserPrincipalName $user.EmailAddress } } } |