PSSCRIPTS.DE | Anzeigename bei mehreren Benutzern einer OU anpassen

Wenn in einer Windows-Domäne für eine Vielzahl von Benutzern der Anzeigename angepasst werden soll, bietet sich PowerShell als schnelles und effizientes Werkzeug an. Mit nur wenigen Zeilen Code lassen sich sämtliche Benutzernamen in einer bestimmten Organisationseinheit (OU) ändern. Das folgende Beispiel zeigt, wie ihr den Anzeigenamen mehrerer Benutzer automatisiert aktualisieren könnt.


Das PowerShell-Skript im Überblick

Import-Module ActiveDirectory
$users = Get-ADUser -Filter * -SearchBase "OU=XYZ,OU=USER,DC=CONTOSO,DC=LOCAL" -Properties GivenName, Surname, DisplayName

foreach ($user in $users)
{
if ($user.GivenName -and $user.Surname)
{
$Vorname = $user.GivenName
$Nachname = $user.Surname
$NeuerAnzeigename = "$Nachname, $Vorname | NEUER ANZEIGENAME"

# Anzeigename aktualisieren
Set-ADUser -Identity $user.SamAccountName -DisplayName $NeuerAnzeigename
}
else
{
Write-Host "Vorname oder Nachname fehlt bei: $($user.SamAccountName)"
}
}

Funktionsweise:

  1. Import-Module ActiveDirectory
    • Lädt das Active Directory-Modul, um auf die AD-spezifischen Cmdlets (Get-ADUser, Set-ADUser) zugreifen zu können.
  2. Get-ADUser
    • Listet alle Benutzer in der definierten OU auf (z. B. "OU=XYZ,OU=USER,DC=CONTOSO,DC=LOCAL").
    • Mit -Properties werden zusätzlich die Attribute GivenName (Vorname), Surname (Nachname) und DisplayName (Anzeigename) abgefragt, welche standardmäßig nicht alle geladen werden.
  3. Kontrollstruktur
    • if ($user.GivenName -and $user.Surname): Hier wird geprüft, ob Vor- und Nachname im Benutzerobjekt hinterlegt sind.
    • Ist beides vorhanden, wird der neue Anzeigename erzeugt und mit Set-ADUser geändert.
    • Andernfalls wird ein Hinweis ausgegeben, dass Vor- oder Nachname fehlt.
  4. $NeuerAnzeigename
    • In diesem Beispiel wird das Format Nachname, Vorname | NEUER ANZEIGENAME genutzt.
    • Ihr könnt diesen String nach euren Bedürfnissen anpassen (z. B. „Vorname Nachname (Abteilung)“ o.Ä.).

Anwendungsfälle

  • Organisation von Konten: Wenn beispielsweise eine Namenskonvention in eurer Firma eingeführt (oder geändert) wird und alle Benutzernamen einheitlich dargestellt werden sollen.
  • Vorbereitung für ein Rollout: Gerade vor einem Update oder bei Migrationen in Microsoft 365-Umgebungen kann ein einheitliches Namensschema hilfreich sein.
  • Datensatzbereinigung: Nutzt das Skript, um Lücken in Vor- oder Nachnamen zu identifizieren und ggf. zu korrigieren.

Tipps & Tricks

  1. Filtern nach bestimmten Benutzern
    • Statt -Filter * (alle Benutzer), kann man spezifisch filtern, z. B. nach Kontonamen oder nach Attributen wie „GivenName -like 'Max*'“.
    • Beispiel:powershellCode kopierenGet-ADUser -Filter { Surname -eq 'Müller' } -SearchBase "OU=..." ...
  2. Testumgebung
    • Führt das Skript zuerst in einer Test-OU aus, um sicherzustellen, dass ihr das gewünschte Ergebnis erzielt.
    • Alternativ nur für einen Benutzer (Stichprobe) durchlaufen lassen, indem man den Filter auf ein bestimmtes Konto beschränkt.
  3. Protokollierung
    • Ihr könnt die Ausgabe in eine CSV-Datei exportieren, um später nachvollziehen zu können, welche Konten geändert wurden. Beispiel:
      • $report = foreach ($user in $users) { ... # nach erfolgreicher Änderung [PSCustomObject]@{ SamAccountName = $user.SamAccountName NeuerDisplayName = $NeuerAnzeigename } } $report | Export-Csv -Path "C:\temp\AnzeigenamenReport.csv" -NoTypeInformation
  4. Berechtigungen
    • Stellt sicher, dass das verwendete Konto über genügend Rechte verfügt, um die Konten in der OU zu ändern. In der Regel benötigt man mindestens Account Operator- oder Domain Admin-Rechte.

Mit einem PowerShell-Skript wie dem gezeigten könnt ihr auf einfache Weise den Anzeigenamen zahlreicher Benutzer in einer Active-Directory-Umgebung anpassen. Das Skript ist dabei flexibel erweiterbar und kann an die jeweiligen Namenskonventionen eurer Organisation angepasst werden. PowerShell erweist sich einmal mehr als schnelles und leistungsstarkes Werkzeug für Automatisierungsaufgaben in der IT.

Quellen


Microsoft Docs: Set-ADUserOffizielle Dokumentation zum Cmdlet Set-ADUser, inkl. Parameter und Beispiele
Microsoft Docs: Get-ADUserOffizielle Dokumentation zum Cmdlet Get-ADUser
PowerShell MagazineTutorials & Artikel zu PowerShell-Anwendungen, Skripting und Automatisierung

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*