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:
- Import-Module ActiveDirectory
- Lädt das Active Directory-Modul, um auf die AD-spezifischen Cmdlets (Get-ADUser, Set-ADUser) zugreifen zu können.
- 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.
- Listet alle Benutzer in der definierten OU auf (z. B.
- 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.
- $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.Ä.).
- In diesem Beispiel wird das Format
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
- 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 kopieren
Get-ADUser -Filter { Surname -eq 'Müller' } -SearchBase "OU=..." ...
- Statt
- 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.
- 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
- Ihr könnt die Ausgabe in eine CSV-Datei exportieren, um später nachvollziehen zu können, welche Konten geändert wurden. Beispiel:
- 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-ADUser | Offizielle Dokumentation zum Cmdlet Set-ADUser, inkl. Parameter und Beispiele |
Microsoft Docs: Get-ADUser | Offizielle Dokumentation zum Cmdlet Get-ADUser |
PowerShell Magazine | Tutorials & Artikel zu PowerShell-Anwendungen, Skripting und Automatisierung |
Hinterlasse jetzt einen Kommentar