Exchange-Berechtigungen über die PowerShell auflisten

Lesezeit
1 Minute
Bis jetzt gelesen

Exchange-Berechtigungen über die PowerShell auflisten

13.02.2026 - 00:07
Veröffentlicht in:

Berechtigungen in Exchange sind ein Klassiker für „mal eben schnell nachsehen“ – und genau hier spielt die PowerShell ihre Stärken aus. Statt sich durch Dialoge zu klicken, liefern die richtigen Cmdlets in Sekunden Klarheit: Wer hat Zugriff auf welches Postfach? Und welche Berechtigungsart ist überhaupt gemeint?

Wichtig vorab: Exchange kennt mehrere, voneinander getrennte Berechtigungswege. In der Praxis sollten Sie daher immer mindestens diese drei prüfen:

  • Full Access / MailboxPermissionGet-MailboxPermission
  • Send AsGet-RecipientPermission
  • Send on Behalf → Mailbox-Attribut GrantSendOnBehalfTo

1) Welche Rechte hat Benutzer X auf Postfach Y? (Full Access & Co.)

Für klassische Postfachberechtigungen (z. B. Full Access) nutzen Sie Get-MailboxPermission direkt am Zielpostfach:

Get-MailboxPermission -Identity "<Mailbox>" -User "<Benutzer>"

Für die Praxis ist eine Filterung sinnvoll, weil vererbte Einträge und Systemkonten sonst die Ausgabe verwässern:

Get-MailboxPermission -Identity "<Mailbox>" |

  Where-Object { -not $_.IsInherited -and $_.User -like "*<Benutzer>*" } |

  Format-Table User, AccessRights, Deny, IsInherited

2) Auf welche Postfächer hat Benutzer X Zugriff? (Organisationweit, gefiltert)

Wenn Sie wissen möchten, für welche Postfächer ein bestimmter Benutzer Rechte besitzt, können Sie alle Mailboxen durchlaufen. Das ist in großen Umgebungen teuer – filtern Sie daher unbedingt:

Get-Mailbox -ResultSize Unlimited |

  Get-MailboxPermission -User "<Benutzer>" |

  Where-Object { -not $_.IsInherited -and $_.AccessRights -like "*FullAccess*" } |

  Select-Object Identity, User, AccessRights

Tipp: Wenn Sie auch „Deny“-Einträge sehen wollen:

Get-Mailbox -ResultSize Unlimited |

  Get-MailboxPermission -User "<Benutzer>" |

  Where-Object { -not $_.IsInherited } |

  Select-Object Identity, User, AccessRights, Deny

3) Send As prüfen (separater Berechtigungspfad!)

Send As taucht nicht bei Get-MailboxPermission auf. Dafür ist Get-RecipientPermission zuständig:

Get-RecipientPermission -Identity "<Mailbox>" -Trustee "<Benutzer>"

Organisationweit (wo darf Benutzer X „Send As“?):

Get-Mailbox -ResultSize Unlimited |

  Get-RecipientPermission -Trustee "<Benutzer>" |

  Where-Object { $_.AccessRights -like "*SendAs*" } |

  Select-Object Identity, Trustee, AccessRights

4) Send on Behalf prüfen (Mailboxtag/Attribut)

„Senden im Auftrag von“ ist weder MailboxPermission noch RecipientPermission, sondern ein Mailbox-Attribut:

(Get-Mailbox "<Mailbox>").GrantSendOnBehalfTo

Und organisationweit, bei welchen Mailboxen der Benutzer eingetragen ist:

Get-Mailbox -ResultSize Unlimited |

  Where-Object { $_.GrantSendOnBehalfTo -match "<Benutzer>" } |

  Select-Object Name, GrantSendOnBehalfTo

Merke

„Full Access“ ist nicht „Send As“ und nicht „Send on Behalf“.
Für eine vollständige Berechtigungsanalyse brauchen Sie in der Regel alle drei Abfragen.
 

Praxis-Hinweis für große Umgebungen

Get-Mailbox -ResultSize Unlimited kann bei vielen Postfächern dauern. Begrenzen Sie nach Möglichkeit vorab, z. B. über Namensmuster, OU, Datenbank oder Postfachtyp (Shared/Room), bevor Sie die Berechtigungen ziehen.

Topic