Userprincipalname mit Powershell vervollständigen

powershell ad account userprincipalname

In der Vergangenheit hatte ich den Fall, dass eine Fremdsoftware neue Active-Directory Nutzer mit fehlender Domain im User Logonname / User PrincipalName angelegt hatte. Um diesen Fehler zu korrigieren, kann man Powershell wunderbar benutzen. Dazu lasse ich mir im ersten Schritt alle AD-Accounts ausgeben deren UserPrincipalname nicht dem Muster „*@*“ entspricht. Im zweiten Scritt wird das über eine Schleife und dem Befehl „Set-ADUser“ geändert.

Als Oneliner bekommt man das natürlich auch hin. Damals hatte ich es aufgrund besserer Übersichtlichkeit mit mehr Code umgesetzt.

$selected_domaincontroller="dc01.mj.local"
$ad_domainname_long="mj.local"

$ad_accounts=Get-ADUser -Filter{Userprincipalname -notlike"*@*"} -server $selected_domaincontroller

foreach($acc in $ad_accounts){

           $upn=$acc.SamAccountName+"@"+$ad_domainname_long
           write-host "- set new UPN: "$upn
    
           if($dont_change -eq 0){
                Set-ADUser $acc.SamAccountName -UserPrincipalName $upn -server $selected_domaincontroller
           }
}

weitere nützliche Beiträge über Powershell und Active-Directory