Exchange 2010/2007: Anzeigenamen ändern oder hinzufügen (DisplayName)

Wer den Anzeigenamen für Benutzer ändern oder hinzufügen möchte, kann das über die Exchange Management Shell einfach für einzelne oder für alle Benutzer erledigen. Das Attribut des Postfachs das den Anzeigenamen enthält heißt „DisplayName“.

Mit diesem Befehl lässt man sich die momentanen Anzeigenamen anzeigen lassen:

Get-Mailbox –Database „Name der Postfachdatenbank“ |select Name,displayname

Möchte man nun den Anzeige Namen ändern, geht das mit diesem Befehl:

 set-mailbox „Alias oder E-mail Adresse“ –DisplayName „Neuer Anzeigename“

So kann man sich einfach ein kleines Script bauen, welches den Anzeigenamen aus den Namen des Benutzers und einen wählbaren Zusatz bildet, das ist praktisch wenn zum Beispiel der Firmenname hinzugefügt werden soll:

foreach ($database in „Name der MailboxDatenbank“)

{

$AllUsers += Get-Mailbox -Database $database -ResultSize Unlimited|select Name,identity

}

foreach ($user in $AllUsers)

{

$newdisplayname=$user.Name + “ | Firmenname“

set-mailbox -identity $user.identity -DisplayName $newdisplayname

}

Dieses Script nimmt alle User aus der in Zeile angegebenen MailboxDatenbank und bildet den neuen Anzeigenamen aus Vor- und Nachname des Benutzers und den in Zeile 7 angegebenen Firmennamen.

12 thoughts on “Exchange 2010/2007: Anzeigenamen ändern oder hinzufügen (DisplayName)”

  1. Hallo Zusammen,

    es gibt doch die benutzerdefinierten Attribute. Könnte man diese auch im Mailheader anzeigen lassen? Oder für was verwende ich die?
    Freu mich über Antworten

    Gruss Mareike

    Reply
  2. @Uwe
    Der SimpleDisplayName fand seine Entsprechung im AD immer in dem Feld „displayNamePrintable“.
    Geht denn noch das
    Get-RemoteDomain | Set-RemoteDomain –UseSimpleDisplayName $true
    ?
    Gruß
    Volker

    Reply
  3. Guten Morgen, wenn ich im Displaynamen eine Leerzeichen angeben möchte z.b.
    $newdisplayname= “NeuerFirmenName – “ + $user.Name
    kommt folgender Fehler
    Set-Mailbox : Cannot bind parameter ‚DisplayName‘ to the target. Exception setting
    „DisplayName“: „Der Eigenschaftswert ist ungültig. Dieser Wert darf keine führenden
    oder nachstehenden Leerzeichen enthalten.“

    Reply
  4. Hallo Frank,
    ich habe gerade die Aufgabe, in einer Firma Exchange 2016 einzurichten. Nun möchte der Kunde, dass in den gesendeten Mails der Absender wie folgt erscheint: „Firma GmbH – Paul Richter“. Im AD soll der Benutzer aber überall als „Richter, Paul“ (so der Anzeigename) verwendet werden.
    Nun gab es in Exch2010 den „Simple Display Name“, den ich unter Exch2016 nicht mehr finden konnte. Hast Du eine Idee, wie ich den aktiviere oder das sonst realisieren kann?

    Vielen Dank!

    Gruß Uwe

    Reply
  5. Hallo Frank

    ich habe mal eine grundsätzliche Frage. Ist der Displayname ein technisch zwingend erforderliches Feld?
    Wofür wird es genau benötigt, außer dass eben ausser der E-Mailadresse auch der Displayname in Mails angezeigt wird.
    Ich habe bei Selfadsi einen Artikel gefunden, dass der Displayname u.a. für ein globales Adressbuch zwingend erforderlich ist. Der bezog sich allerdings auf 2003. Ist dies unter Exchange 2010 und Exchange 2016 auch noch so?

    Vielen Dank!

    Ssonnige Grüße aus dem schönen Breisgau

    Bianca

    Hintergrund ist, dass es bei uns in der Firma gerade ein Projekt gibt, dass u.a. eine Neustrukturierung der E-Mailadressen und des Globalen Adressbuches zum Thema hat. Aus diesen Reihen wurde nun an mich die Frage herangetragen, ob man den Displayname nicht einfach weglassen könne, weil er gerade auf dem Smartphone o.ä. unübersichtlich ist.

    Reply
    • Hi Bianca,
      ja der Displayname ist erforderlich, er wird unter anderem auch für das Adressbuch verwendet. Der Displayname lässt sich allerdings frei definieren, kann also den eigenen Anforderungen entsprechend angepasst werden.
      Gruß, Frank

      Reply
  6. Toller Tip, Script funktioniert einwandfrei. Eine ergänzende Frage: Bei nur kleiner Anpassung könnte man damit auch SimpleDisplayName ändern oder wie in meinem Fall füllen. Der Haken: das Feld nimmt keine Umlaute! „Was tun?“ sprach Zeus.
    Ich brauche eine Möglichkeit, alle Umlaute des Arrays zu ersetzen, bevor der zweite Teil daraus die neuen Einträge baut.

    Reply
  7. Hi,
    das kleine Script oben im beitrag macht geanu das, es nimmt alle User aus der Datenbank und ergänzt den aktuellen Namen mit dem wählbaren Zusatz. Das Problem bei deiner Variantie ist, das du vorher kein Array bildest. In deinen Fall sieht das ganze also in etwa so aus (Bitte erstmal an ein paar Usern in einer anderen DB oder auf einen Testsystem ausprobieren):

    foreach ($database in “db1”)
    {
    $AllUsers += Get-Mailbox -Database $database -ResultSize Unlimited|select Name,identity
    }
    foreach ($user in $AllUsers)
    {
    $newdisplayname=$user.Name + ” | contoso”
    set-mailbox -identity $user.identity -DisplayName $newdisplayname
    }

    Die Zeilen oben kannst du einfach in ein PS Script Datei speichern und dann via Powershell ausführen, zum Beispiel change_displaynames.ps1. Ausführen kannst du die Datei dann so:

    ./change_displaynames.ps1

    Hoffe ich konnte dir helfen.

    Reply
  8. Wo muss man das Script ausführen, bekomme ein Fehler in Zeile 78 im ExchangePowerShell- Konsole, kann man den Displaynamen nicht einfach für alle Benutzer hinzufügen(zweite Befehl oben)???

    Hier mal mein Test:

    Get-Mailbox –Database “db1” |select Name,displayname foreach ($database “db1”) { $AllUsers += Get-Mailbox -Database $database -ResultSize Unlimited|select Name,identity } foreach ($user in $AllUsers) { $newdisplayname=$user.Name + ” | contoso” set-mailbox -identity $user.identity -DisplayName $newdisplayname }

    Reply

Leave a Comment