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
}
}