Exchange 2010/2007: Change or add display name (DisplayName)

If you want to change or add the display name for users, you can easily do this for individual or all users via the Exchange Management Shell. The attribute of the mailbox that contains the display name is called "DisplayName".

This command can be used to display the current display names:

Get-Mailbox -Database "Name of the mailbox database" |select Name,displayname

If you now want to change the display name, you can do so with this command:

set-mailbox "Alias or e-mail address" -DisplayName "New display name"

So you can simply build a small script that forms the display name from the user's name and a selectable addition, which is practical if, for example, the company name is to be added:

foreach ($database in "Name of the mailbox database")

{

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

}

foreach ($user in $AllUsers)

{

$newdisplayname=$user.Name + " | Company name"

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

}

This script takes all users from the mailbox database specified in line and creates the new display name from the first and last name of the user and the company name specified in line 7.

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