Ermitteln der erforderlichen Berechtigungen zum Ausführen von Exchange-Cmdlets

Mithilfe von PowerShell können Sie nach den erforderlichen Berechtigungen zum Ausführen von Exchange- oder Exchange Online-Cmdlets suchen. Dieses Verfahren zeigt die Verwaltungsrollen und Rollengruppen der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC), die Ihnen Zugriff auf ein bestimmtes Cmdlet gewähren - selbst wenn Ihre Organisation über benutzerdefinierte Rollen, Rollengruppen oder Rollenzuweisungen verfügt.

Tipp

Derzeit funktionieren die Verfahren in diesem Artikel nicht mit Microsoft 365 Group-Cmdlets (*-UnifiedGroup) in Exchange Online PowerShell.

Was sollten Sie wissen, bevor Sie beginnen?

  • Geschätzte Zeit bis zum Abschließen dieses Verfahrens: Weniger als 5 Minuten.

  • Sie können powerShell nur zum Ausführen dieser Verfahren verwenden.

  • Sie müssen ein Administrator sein, um dieses Verfahren auszuführen. Darüber hinaus benötigen Sie Zugriff auf die Cmdlets Get-ManagementRole und Get-ManagementRoleAssignment. Standardmäßig wird der Zugriff auf diese Cmdlets über die Rollen "Nur anzeigende Konfiguration" oder "Rollenverwaltung" in Exchange Online gewährt, die standardmäßig nur den Rollengruppen "Ansichtsgeschützte Organisationsverwaltung" und "Organisationsverwaltung" zugewiesen sind.

    In cloudbasierten Organisationen erhalten Sie durch die Mitgliedschaft in der Rolle "Globale Administratoren" in Microsoft Entra ID die erforderlichen Berechtigungen.

  • Die Verfahren in diesem Artikel funktionieren nicht in Security & Compliance PowerShell. Weitere Informationen zu Security & Compliance-Berechtigungen finden Sie in den folgenden Artikeln:

Tipp

Liegt ein Problem vor? Bitten Sie in den Exchange-Foren um Hilfe. Besuchen Sie die Foren unter: Exchange Server oder Exchange Online.

Mithilfe von PowerShell können Sie nach den erforderlichen Berechtigungen zum Ausführen eines Cmdlets suchen.

  1. Falls noch nicht geschehen, öffnen Sie die Exchange PowerShell-Umgebung, an der Sie interessiert sind:

  2. Ersetzen Sie <Cmdlet> und optional durch die Werte, <Parameter1>,<Parameter2>,... die Sie verwenden möchten, und führen Sie den folgenden Befehl aus:

    $Perms = Get-ManagementRole -Cmdlet <Cmdlet> [-CmdletParameters <Parameter1>,<Parameter2>,...]
    

Tipp

Wenn Sie mehrere Parameter angeben, werden nur Rollen zurückgegeben, die alle angegebenen Parameter im Cmdlet enthalten.

  1. Führen Sie den folgenden Befehl aus:

    $Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}
    

Interpretieren der Ergebnisse

Die Ergebnisse enthalten die folgenden Informationen:

  • Rolle: Gibt die Rolle an, die Zugriff auf das Cmdlet gewährt, oder die Kombination aus Cmdlet und Parametern. Rollennamen, die mit "My" beginnen, sind Benutzerrollen, die es regulären Benutzern ermöglichen, mit Objekten zu arbeiten, die sie besitzen (z. B. ihr eigenes Postfach oder ihre Verteilergruppen).

  • RoleAssigneeType und RoleAssigneeName: Diese Werte hängen miteinander zusammen:

    • RoleAssigneeType ist der Typ des Objekts, dem die Rolle zugewiesen ist. Bei Administratorrollen ist dieser Wert in der Regel eine Rollengruppe, kann aber auch eine Rollenzuweisungsrichtlinie, eine Sicherheitsgruppe oder ein Benutzer sein.
    • RoleAssigneeName ist der Name der Rollengruppe, der Rollenzuweisungsrichtlinie, der Sicherheitsgruppe oder des Benutzers.

Problembehandlung

Was geschieht, wenn keine Ergebnisse angezeigt werden?

  • Stellen Sie sicher, dass Sie die Namen von Cmdlet und Parametern richtig eingegeben haben.
  • Mehrere Parameter für ein Cmdlet sind möglicherweise nicht in einer einzelnen Rolle definiert (einige Parameter befinden sich möglicherweise in einer Rolle, während sich die anderen in einer anderen Rolle befinden). Gehen Sie schritt für Schritt vor:
    • Führen Sie den ersten Befehl ohne Parameter und dann den zweiten Befehl aus.
    • Fügen Sie dem ersten Befehl einen Parameter hinzu, und führen Sie dann den zweiten Befehl aus.
    • Wiederholen Sie den vorherigen Schritt, indem Sie dem ersten Befehl weitere Parameter hinzufügen, bevor Sie den zweiten Befehl ausführen.

Andernfalls werden wahrscheinlich keine Ergebnisse durch eine der folgenden Bedingungen verursacht:

  • Das Cmdlet oder die Parameter werden in einer Rolle definiert, die standardmäßig keiner Rollengruppe zugewiesen ist.
  • Das Cmdlet oder die Parameter sind in Ihrer Umgebung nicht verfügbar. Sie haben beispielsweise ein Exchange Online-Cmdlet oder Exchange Online Parameter in einer lokalen Exchange-Umgebung angegeben.

Um die Rollen in Ihrer Umgebung (falls vorhanden) zu finden, die das Cmdlet oder die Parameter enthalten, ersetzen <Cmdlet> Sie und optional durch die Werte, die Sie verwenden möchten, <Parameter1>,<Parameter2>,... und führen Sie den folgenden Befehl aus:

Get-ManagementRoleEntry -Identity *\<Cmdlet> [-Parameters <Parameter1>,<Parameter2>,...]

Tipp

Sie können Platzhalterzeichen (*) im Cmdlet und Parameternamen verwenden (z. B *-Mailbox*. ).

Wenn der Befehl die Fehlermeldung zurückgibt, dass das Objekt nicht gefunden werden konnte, sind das Cmdlet oder die Parameter in Ihrer Umgebung nicht verfügbar.

Wenn der Befehl Ergebnisse zurückgibt, sind das Cmdlet oder die Parameter in Ihrer Umgebung verfügbar, aber die erforderliche Rolle wird keiner Rollengruppe zugewiesen. Führen Sie den folgenden Befehl aus, um Rollen zu finden, die keiner Rollengruppe zugewiesen sind:

$na = Get-ManagementRole; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}

Einschließen von Verwaltungsrollenbereichen

Verwaltungsrollenbereiche (insbesondere Schreibbereiche) definieren, wo Cmdlets funktionieren können. Beispielsweise die gesamte organization oder nur für bestimmte Benutzerobjekte.

Fügen *Scope* Sie dem zweiten Befehl hinzu, um Bereichsinformationen in powerShell zum Suchen der erforderlichen Berechtigungen zum Ausführen einer Cmdlet-Ausgabe einzuschließen:

$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}

Ausführliche Informationen zu Verwaltungsrollenbereichen finden Sie unter Grundlegendes zu Verwaltungsrollenbereichen.

Suchen aller Rollen, die einem bestimmten Benutzer zugewiesen sind

Um alle Rollen anzuzeigen, die einem bestimmten Benutzer zugewiesen sind, ersetzen Sie <UserIdentity> durch den Namen, alias oder die E-Mail-Adresse des Benutzers, und führen Sie den folgenden Befehl aus:

Get-ManagementRoleAssignment -RoleAssignee <UserIdentity> -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType

Zum Beispiel:

Get-ManagementRoleAssignment -RoleAssignee julia@contoso.com -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType

Tipp

Der RoleAssignee-Parameter gibt sowohl direkte Rollenzuweisungen an Benutzer (ungewöhnlich) als auch indirekte Rollenzuweisungen zurück, die dem Benutzer über seine Mitgliedschaft in Rollengruppen gewährt werden.

Suchen aller Benutzer, denen eine bestimmte Rolle zugewiesen ist

Um alle Benutzer anzuzeigen, denen eine bestimmte Rolle zugewiesen ist, ersetzen Sie <Role name> durch den Namen der Rolle, und führen Sie den folgenden Befehl aus:

Get-ManagementRoleAssignment -Role "<Role name>" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod

Zum Beispiel:

Get-ManagementRoleAssignment -Role "Mailbox Import Export" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod

Suchen der Mitglieder einer Rollengruppe

Um die Mitglieder einer bestimmten Rollengruppe anzuzeigen, ersetzen Sie <Role group name> durch den Namen der Rollengruppe, und führen Sie den folgenden Befehl aus:

Get-RoleGroupMember "<Role group name>"

Zum Beispiel:

Get-RoleGroupMember "Organization Management"

Tipp

Führen Sie Get-RoleGroupaus, um die Namen aller verfügbaren Rollengruppen anzuzeigen.