AD Anzeigenamen ändern per Powershell
Hallo zusammen,
ich habe nun die Aufgabe den Anzeigenamen von allen Mitarbeitern zu ändern.
Von "Vorname Nachname" auf "Nachname, Vorname"
Nun will ich nicht unbedingt 500 Konten händisch anfassen, sondern es entweder voll oder halb automatisiert erledigen.
Was ich versucht habe:
Set-Aduser <upnnamen> -displayname "<nachname, vorname>"
Dies funktioniert auch soweit. Aber es ist mühsehlig, da jedesmal der Nachname und der Vorname händisch eingegeben werden muss.
Ich würde den Vornamen und Nachnamen allerdings gerne aus dem AD als Variable o.Ä. übernehmen.
Und da komme ich nicht weiter.
Mein Ansatz war, der nicht funktioniert:
Set-AdUser <upnnamen> -displaynamen "$Lastname, $Firstname"
Hatt da jmd eine Idee?
Vielen Danke
MfG
Nico
ich habe nun die Aufgabe den Anzeigenamen von allen Mitarbeitern zu ändern.
Von "Vorname Nachname" auf "Nachname, Vorname"
Nun will ich nicht unbedingt 500 Konten händisch anfassen, sondern es entweder voll oder halb automatisiert erledigen.
Was ich versucht habe:
Set-Aduser <upnnamen> -displayname "<nachname, vorname>"
Dies funktioniert auch soweit. Aber es ist mühsehlig, da jedesmal der Nachname und der Vorname händisch eingegeben werden muss.
Ich würde den Vornamen und Nachnamen allerdings gerne aus dem AD als Variable o.Ä. übernehmen.
Und da komme ich nicht weiter.
Mein Ansatz war, der nicht funktioniert:
Set-AdUser <upnnamen> -displaynamen "$Lastname, $Firstname"
Hatt da jmd eine Idee?
Vielen Danke
MfG
Nico
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 242713
Url: https://administrator.de/contentid/242713
Ausgedruckt am: 05.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Nico,
so sollte es gehen, ist aber ungetestet und geht wegen "-Filter *" auf ALLE Useraccounts in Deinem AD los:
Gruß
Marcus
so sollte es gehen, ist aber ungetestet und geht wegen "-Filter *" auf ALLE Useraccounts in Deinem AD los:
$users = Get-ADUser -Filter *
foreach ($user in $users) {
$firstname = $user.GivenName
$lastname = $user.Surname
Set-ADUser -Identity $user.SamAccountName -DisplayName ($lastname+", "+$firstname)
}
Gruß
Marcus
Hallo Nico,
Filtert in diesem Beispiel nur die User bei denen auch Vor- und Nachname existiert. Solltest du wenns geht auf eine OU oder einen Container begrenzen in der keine "Sonder"-Accounts liegen. So werden aber schon die meisten besonderen Accounts ausgefiltert.
Grüße Uwe
Filtert in diesem Beispiel nur die User bei denen auch Vor- und Nachname existiert. Solltest du wenns geht auf eine OU oder einen Container begrenzen in der keine "Sonder"-Accounts liegen. So werden aber schon die meisten besonderen Accounts ausgefiltert.
get-aduser -Filter * | ?{$_.Surname -ne $null -and $_.Givenname -ne $null} | %{set-aduser $_.SamAccountName -DisplayName "$($_.Surname), $($_.Givenname)"}
Zitat von @Niggo55:
Wenn ich das Script vom Marcus ausführe, erstellt er mir lediglich als Anzeigenamen ein Komma.
Auf was für einem System fährst du das Script ?Wenn ich das Script vom Marcus ausführe, erstellt er mir lediglich als Anzeigenamen ein Komma.
Meins geht hier soweit einwandfrei auf einem Server 2008 R2. Das von Marcus funktioniert auch, bis auf wenn die Namen leer sind, dann wird bei seinem Script im Namen natürlich nur ein Komma aufgeführt !. Das wurde in meinem Script bereits berücksichtigt.
Grüße Uwe