Adresslisten in Exchange Online aktualisieren


Kürzlich bin ich über ein Thema bei der Aktualisierung von Adresslisten in Office 365/Exchange Online gestolpert, und möchte hier darüber berichten. Die Kurzfassung ist, dass existierende Mitglieder in Adresslisten nicht angezeigt werden.

Um das nachzuvollziehen, habe ich hier ein kleines Beispiel entwickelt, welches das Thema zeigt. Beim Erzeugen einer Adressliste in Exchange Online werden Filter angegeben, die definieren, welche User in der Liste angezeigt werden sollen. Die Adressliste bleibt somit dynamisch und zeigt alle Benutzer oder Kontakte an, welche den Filterbedingungen entsprechen.

Die Erstellung einer Adressliste erfolgt per PowerShell mit dem Befehl New-AddressList aus den Remote Exchange PowerShell cmdlets. Das Kommando sieht dann beispielweise aus wie hier:

New-AddressList –Name 'New York and HR' -RecipientFilter {( (department -eq 'New York') -or (department -eq 'Human Resources') )}

Die neue Adressliste “New York and HR” wird mit einem Filter erzeugt, wo alle User Mitglieder sind, die als Department New York oder Human Resources gesetzt haben. Soweit, so gut.

Somit erwartet man als IT-Admin, dass die Adressliste nach und nach mit diesen Usern befüllt werden, welche den gesetzten Bedingungen entsprechen. Leider ist es jedoch nicht so. Die Liste bleibt leer (am schnellsten ist die Prüfung direkt in der “People” Site https://outlook.office365.com).

Nach kurzer Recherche war klar, dass es zur Aktualisierung der Adressliste zwar ein Exchange cmdlet “Update-AddressList” gibt, dieses jedoch nur in Exchange Server (on premises) zur Verfügung steht, aber nicht in Exchange Online (Office 365). Dieses cmdlet würde das Exchange System dazu zwingen, eine Adressliste zu aktualisieren, also genau das, was wir benötigen.

Der folgende Artikel aus den Microsoft Support-Seiten beschreibt diese Situation: https://support.microsoft.com/en-us/kb/2955640
“…New address lists aren’t automatically updated in Exchange Online. Additionally, the Update-AddressList and Update-GlobalAddressList cmdlets aren’t currently available in Exchange Online. This behavior is by design…”.

Es gibt also derzeit zwei Möglichkeiten, eine Adressliste in Office 365 zu aktualisieren:

  1. Eine Adressliste wird zuerst angelegt, bevor User angelegt werden. Neue User werden in der Adressliste angezeigt, wenn sie den Filterbedingungen der Adressliste entsprechen.
  2. Existierende Benutzer müssen aktualisiert werden, damit sie in der Adressliste aufscheinen. Dies erfolgt durch neuerliches Setzen – also Überschreiben – von User Properties, etwa Schreiben von “New York” in das Attribut “Department” (wo bereits “New York” drinnen steht). Durch das Update eines Users erfolgt eine Aktualisierung der Adressliste mit dem User – und der existierende User wird in der Adressliste angezeigt.

Dies sind derzeit die einzigen, bekannten Workarounds in Office 365 in Verbindung mit Adresslisten.

Um dies in unserem Szenario umzusetzen, verwende ich diese cmdlets für einen User:

Set-User jeffh@CIECOM888546.onmicrosoft.com -Department 'New York'

Wenn der User eine Mailbox hat, kann eine Exchange Property wie folgt aktualisiert werden:

Set-Mailbox jeffh@CIECOM888546.onmicrosoft.com -CustomAttribute10 'New York'

Wenn es sich um einen globalen Kontakt handelt, funktioniert dieses Kommando:

Set-Contact -Identity 'max.doe@doe.com' -Department 'New York'

Als Ergebnis scheinen die so aktualisierten Benutzer (und Kontakte) in der (neuen) Adressliste auf. In meinem Beispiel mit einem Office 365 Tenant mit nur etwa 3 Dutzend Usern erfolgte die Aktualisierung innerhalb von etwa einer Minute.

image_thumb5

Hinweis: Wenn es sich bei dem Office 365 Tenant um ein föderiertes Active Directory handelt, klappt das Aktualisieren von User Properties natürlich nicht, da die Eigenschaften ge-synct werden und somit in der Cloud read only sind. In einem solchen Fall würde etwa folgendes passieren:

Set-Mailbox jeffh@sometenant.onmicrosoft.com -Department 'New York'
oder
Set-User jeffh@sometenant.onmicrosoft.com -MobilePhone '+1 234567890'

…liefern dann einen Fehler, abhängig vom Objekt-Typ:

The operation on mailbox “xy” failed because it’s out of the current user’s write scope. The action ‘Set-Mailbox’, ‘Department’, can’t be performed on the object  ‘xy’ because the object is being synchronized from your on-premises organization. This action should be performed on the object in your on-premises organization.

Dann müssen Änderungen on premises erfolgen und ein Re-Sync der User mit AAD Connect erfolgen, damit die existierenden User in der Wolke aktualisiert werden.

Alternativ könnte eine User-Property in der Cloud aktualisiert werden, die nicht gesynct wird (und writeable ist), etwa die Exchange-Property “SimpleDisplayName”, welche bei Mailbox-Usern und Distribution Groups vorhanden ist (Check mit get-mailbox –Identity …).

image

Oder die User aktualisieren Ihr Profil selbst…

Hier eine Liste hilfreicher Links:

Ich hoffe, diese Informationen helfen IT-Administratoren!

Skip to main content