GAL-Name - Displayname
Alle Skripte sind Muster ohne jede Gewährleistung oder Funktionsgarantie. für Schäden bin ich nicht verantwortlich. Achten Sie auf Zeilenumbrüche bei der Übernahme.
Displayname mit Exchange 2000/2003
Exchange 2000/2003 nutzt das Active Directory als Adressdatenbank und zeigt dem Outlook Client im Adressbuch den "Displayname" an. Leider wird dieser Name bei der Anlage eines Benutzers per MMC immer mit "Vorname Nachname" gefüllt. Dieses Anzeigeformat ist natürlich für deutsche Verhältnisse ungewohnt, da wir lieber eine Sortierung nach dem Nachnamen hätten.
Die Exchange 2000/2003 Erweiterung von Active Directory Benutzer und Computer wertet zur Bildung des "Displaynamen" das Feld "DisplaySpecifiers" aus. Wenn Sie also einen Benutzer anlegen, erstellt die MMC schon das Feld Displayname, welcher später dann auch von Outlook als Name angezeigt wird. Der Inhalt von "DisplaySpecifiers" können Sie mittels ADSIEDIT ändern.
- Q250455 XADM: How to Change Display Names of Active Directory Users
Sie sollten aber darauf achten, dass dadurch auch der "dn" plötzlich ein "Komma" enthalten kann. Diese Änderung wirkt sich natürlich auch nicht auf bestehende sondern nur auf neu angelegte Benutzer aus. Wenn Sie nun aber schon viele Benutzer angelegt haben oder die Veränderung des Directory Name (dn) nicht wünschen, dann bleibt ihnen der Weg über ein Skript, welches aus den ausgefüllten Feldern "Vorname" (GivenName) und Nachname" (sn) und eventuell auch der Abteilung den Display Namen neu schreibt. Diese Variante erlaubt auch weitergehende Änderungen , z.B. neben dem Namen auch die Abteilung mit anzuhängen.
Ein ähnliches Skript, welches ich als Basis genommen habe, in der TechNet im Artikel "Q277717 How to Change the Display Names of Active Directory Users with Active Directory Services Interface Script." zu finden. Ich habe basierend darauf ein Skript für meinen Einsatzzweck umgebaut.
REM Skript zum Anpassen der Display Namen der Benutzer
wscript.echo "Aendere Anzeigenamen testou.msxfaq.de"
Set oTargetOU = GetObject("LDAP://OU=testou,DC=msxfaq,DC=de")
oTargetOU.Filter = Array("User")
For each usr in oTargetOU
if instr(usr.SamAccountName, "$") = 0 then
vLast = usr.get("Sn")
vFirst = usr.get("GivenName")
vFirma = usr.get("Company")
vFullname = vLast + ", " + vFirst + " ("
+ vFirma + " )"
usr.put "displayName", vFullName
usr.setinfo
wscript.echo usr.displayName
end if
Next
wscript.echo "Skript beendet"
Um das Skript bei sich einsetzen zu können, müssen Sie folgendes sicherstellen:
- Sie benötigen Windows Scripting Host
Starten Sie CSCRIPT.EXE. denn das Programm gefunden wird, ist WSH installiert) - OU anpassen
Sie müssen den roten Teil anpassen und ihre OU eintragen. Wenn Sie mehrere OUs haben, dann sollten sie das Skript einfach mehrfach aufrufen oder gleich das Beispiel von Microsoft auf ihre Bedürfnisse zuschneiden - Bildungsregel anpassen
Wenn ihnen "Nachname, Vorname (Firma)" nicht passt, dann sollten Sie auch den blauen Teil anpassen. - Rechte
Sie benötigen die Rechte, in der OU die entsprechenden Felder zu ändern - TESTEN
Si sollten das Skript zuerst in einer Test-OU oder besser noch in einem Test AD ausprobieren. Ich selbst mache das immer mit einem Windows 2000 DC Server, den ich in einer VMWare dazu starte. Das spart den Extra PC und die Lauferei.
Das original Microsoft Skript gibt es unter "Q277717 How to Change the Display Names of Active Directory Users with Active Directory Services Interface Script. Auch andere Personen haben ähnliche Skripte geschrieben, z.B. http://www.rpieroth.de/ChangeRDN.VBS.
Displayname mit Exchange 2007
In Exchange 2007 kommt nicht mehr die MMC für Benutzer und Computer zum Einsatz, sondern die Exchange Management Console oder PowerShell. Hier hat Microsoft leider die Bildungsregel "fest" codiert.
The rule generating the "Name" field is fixed in
code. There is no way für administrators to customize the generation of
this field.
Quelle: Exchange Server 2007 internationalized console GUI layout of
name and address information
http://blogs.technet.com/b/exchange/archive/2007/02/01/432722.aspx
Um also hier eine "Lösung" zu schaffen, bleibt also nur die "Korrektur" nach der Anlage des Benutzers. Da manuelle Schritte fehleranfällig und arbeitsintensiv sein können, lohnt sich hier natürlich ebenfalls ein Skript. Vielleicht sogar in Verbindung mit einer Logik, die Änderungen sehr schnell erkennt und umsetzt (siehe auch E2K7:RUS)
Ein einfaches Skript kann dies auch manuell durchführen.
# Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin $Userliste = Get-User -resultsize unlimited ForEach ($User in $Userliste ) { $DN = $User.LastName if ($User.FirstName.length -ge 1) {$DN = $DN + ", " + $User.FirstName} $Displayname = $User.displayname if ($DN -ne $User.displayname) { "$Displayname <> $DN" } Set-User $User -DisplayName $DN $DN = $Null }
Weitere Skripte und Beispiele finden Sie z.B. auch auf folgenden Seiten:
- Changing the display name of active directory Users
http://blogs.msdn.com/dgoldman/archive/2008/06/19/changing-the-display-name-of-active-directory-Users.aspx - Exchange 2007 & Display Name Format
http://exchangeshare.wordpress.com/2008/08/17/exchange-2007-display-name-format/
Weitere Links
- E2K7:RUS
- Q277717 How to Change the Display Names of Active Directory Users with Active Directory Services Interface Script
- Q250455 XADM: How to Change Display Names of Active Directory Users
- Q300427 - How to Change Active Directory Display Names
- Exchange Server 2007 internationalized console GUI layout of name and address information http://blogs.technet.com/b/exchange/archive/2007/02/01/432722.aspx
- Changing the display name of active directory Users
http://blogs.msdn.com/dgoldman/archive/2008/06/19/changing-the-display-name-of-active-directory-Users.aspx - Wie kann ich meine Benutzer als "Nachname, Vorname"
anzeigen?
http://www.faq-o-matic.net/2003/08/10/wie-kann-ich-meine-benutzer-als-nachname-vorname-anzeigen/ - Exchange 2007 & Display Name Format
http://exchangeshare.wordpress.com/2008/08/17/exchange-2007-display-name-format/ - http://www.rpieroth.de/ChangeRDN.VBS
-
Exchange: AD-Anzeigename (displayname)
http://faq.netzprisma.de/?id=210005