Vorsicht Falle: Die primäre E-Mail-Adresse in Exchange Online ändern

In meinen Projekten kommen mir immer wieder Besonderheiten unter. Typischerweise sind diese Besonderheiten in vorherigen ähnlichen Projekten so nicht aufgetreten oder tauchen nur in einer bestimmten Konstellation auf.
Diese Besonderheiten können dann wiederum größere Störungen zur Folge haben, wenn sie nicht rechtzeitig erkannt und behoben werden. In so eine Kategorie fällt die eigentlich simpel anmutende Änderung der primären E-Mail-Adresse eines Postfachs.

Ausgangssituation

Im Alltag kann es wieder die Anforderung geben, die primäre E-Mail-Adresse eines Postfachs zu ändern:

  • Namensänderung des Benutzers (z.B. wegen Hochzeit oder Scheidung)
  • Änderung des Einsatzzwecks oder Anpassung im Rahmen einer Änderung der Kommunikationsstrategie (z.B. Deutsch zu Englisch)
  • Anpassung der E-Mail-Domäne (z.B. bei Firmen-Akquisitionen oder Änderungen an der Firmierung)

Die eigentlichen Schritte zur Änderung der E-Mail-Adresse sind hierbei unproblematisch und werden daher hier nicht im Detail beschrieben.

Nach der Änderung kann es passieren, dass Benutzer Zugriffe auf andere Postfächer verlieren, beispielsweise das Recht "Senden als" und/oder "Vollzugriff".

Problemanalyse

Die Analyse ergab zunächst keine Auffälligkeiten. Die Benutzer sind weiterhin in der jeweiligen Berechtigungsliste ("Senden als" bzw. "Lesen und Verwalten (Vollzugriff)") aufgeführt.
In Outlook erhalten die Benutzer jedoch beim Versuch, das Postfach aufzurufen, eine Fehlermeldung (z.B. "Zugriff verweigert", "Ein Clientvorgang ist fehlgeschlagen" oder "Sie besitzen nicht das Recht, im Auftrag des angegebenen Empfängers zu senden...").

Eine Nachfrage beim Microsoft-Support ergab die folgende Aussage:

In Exchange Online, permissions such as Send As and Full Access are linked to the mailbox identity. This identity is strongly associated with the primary SMTP address, which acts as the authoritative reference for the mailbox. When the primary SMTP address is changed, the identity reference is updated. As a result, previously granted permissions no longer align with the updated identity and need to be re-applied.

This behavior is expected and by design, as permissions are identity-based rather than alias-based.

Das Verhalten ist demnach kein Fehler, sondern erwartet.

Im Übrigen verhält sich Exchange Server hier anders. Dort lässt sich die primäre E-Mail-Adresse jederzeit ändern und Berechtigungen auf andere Postfächer bleiben erhalten.

Lösung

Die zunächst naheliegende Lösung ist, den Benutzer aus der Berechtigungsliste zu entfernen und anschließend wieder hinzufügen. Für Einzelfälle mag dies noch umsetzbar sein. Wenn das allerdings im Rahmen einer größeren Aktion wie einer Unternehmens-Zusammenführung passiert, dann muss dies automatisiert passieren. Dementsprechend zeigen die folgenden Schritte das Vorgehen für eine massenhafte Neukonfiguration der Berechtigungen:

  1. Geeigneten Zeitpunkt für die Änderung der primären SMTP-Adresse ermitteln und planen
  2. Berechtigungen mithilfe der folgenden Befehle neu setzen. Diese führen die folgenden Aktionen aus:
    • Ermitteln der betroffenen Postfächer anhand eines Filters
    • Ermitteln und zwischenspeichern der aktuell konfigurierten Berechtigungen
    • Zurücksetzen der aktuellen Berechtigungen auf den Ausgangszustand
    • Erneutes Setzen der Berechtigungen aus dem Zwischenspeicher
# Prüfen, ob das Modul installiert ist und installieren, falls nicht vorhanden
(!(Get-InstalledModule ExchangeOnlineManagement -ErrorAction SilentlyContinue)){Install-Module ExchangeOnlineManagement -Scope CurrentUser} 

# Zu Exchange Online verbinden 
Connect-ExchangeOnline -ShowBanner:$False

# Alle betroffenen Postfächer ermitteln - z.B. anhand der E-Mail-Domäne
$Mailboxes = Get-Mailbox -Filter "PrimarySmtpAddress -like '*@contoso.com'" -ResultSize Unlimited

# Berechtigungen für alle ermittelten Postfächer zurücksetzen
ForEach ($Mailbox in $Mailboxes)
   {
   # Aktuelle Berechtigungen ermitteln
   $FullAccessUsers = Get-MailboxPermission -Identity $Mailbox.Name | Select User
   $SendAsAccessUsers = Get-RecipientPermission -Identity $Mailbox.Name | Select Trustee
 
   # Berechtigungen zurücksetzen
   Write-Host "Berechtigungen für $($Mailbox.PrimarySmtpAddress) werden zurückgesetzt..." -ForegroundColor Yellow
   Remove-MailboxPermission -Identity $Mailbox.DistinguishedName -ResetDefault -Confirm:$False
   Get-RecipientPermission -Identity $Mailbox.DistinguishedName | Where-Object {$_.Trustee -ne 'NT AUTHORITY\SELF' | Remove-RecipientPermission -Confirm:$False

   # Füge Benutzer zur Berechtigung "Vollzugriff" hinzu
   ForEach ($FullAccessUser in $FullAccessUsers)
      {
      # Systemkonten und Postfächer ohne konfigurierte Berechtigungen überspringen
      if ($PermittedUser -ne 'NT AUTHORITY\SELF' -AND $PermittedUser -ne $null)
         {
         Write-Host ''
         Write-Host "Benutzer $PermittedUser erhält Vollzugriff für $($Mailbox.PrimarySmtpAddress)..." -ForegroundColor Yellow
         Add-MailboxPermission -Identity $Mailbox.DistinguishedName -AccessRights FullAccess -User $PermittedUser.User -InheritanceType All -Confirm:$False  
         }
      }

   # Füge Benutzer zur Berechtigung "Senden als" hinzu
   ForEach ($SendAsUser in $SendAsAccessUsers)
      {
      # Systemkonten und Postfächer ohne konfigurierte Berechtigungen überspringen
      if ($PermittedUser -ne 'NT AUTHORITY\SELF' -AND $PermittedUser -ne $null)
         {
         Write-Host ''
         Write-Host "Benutzer $PermittedUser erhält 'Senden als' für $($Mailbox.PrimarySmtpAddress)..." -ForegroundColor DarkYellow
         Add-RecipientPermission -Identity $Mailbox.DistinguishedName -AccessRights SendAs -Trustee $SendAsUser.Trustee -Confirm:$False    
         }
      }  
   }
PowerShell

Empfehlung: die Verwendung von Berechtigungsgruppen anstelle einer direkten Zuweisung kann solche Vorgänge erheblich erleichtern. Dies entspricht auch bewährten Methoden (Verwendung von Gruppen für die Zuweisung von Berechtigungen).



Hat Dir der Beitrag gefallen? Lass es andere wissen!