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.

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 verwenden, um diese Verfahren durchzuführen.

  • 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 von den Rollen Nur-Ansichtskonfiguration oder Rollenverwaltung gewährt, die standardmäßig nur den Rollengruppen "Nur-Ansichtsorganisationsverwaltung" und "Organisationsverwaltung" zugewiesen sind.

  • Die Verfahren in diesem Artikel funktionieren nicht in Security & Compliance Center PowerShell oder eigenständigen Exchange Online Protection (EOP) PowerShell (Microsoft 365-Organisationen ohne Exchange Online-Postfächer). Weitere Informationen zu Berechtigungen in diesen Umgebungen 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, öffnen Sie die Exchange PowerShell-Umgebung, die Sie interessieren:

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

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

    Hinweis: Wenn Sie mehrere Parameter angeben, werden nur Rollen zurückgegeben, die das Cmdlet mit allen Parametern enthalten.

  3. 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:

  • Role: Gibt die Rolle an, die Zugriff auf das Cmdlet gewährt, oder die Kombination aus Cmdlet und Parametern. Beachten Sie, dass Rollennamen, die mit "My" beginnen, Benutzerrollen sind, mit denen normale Benutzer objekte verwenden können, die sie besitzen (z. B. ihr eigenes Postfach oder ihre Verteilergruppen).

  • RoleAssigneeType und RoleAssigneeName: Diese Werte sind miteinander verknüpft:

    • RoleAssigneeType ist der Objekttyp, 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.

  • Die von Ihnen angegebenen Parameter sind tatsächlich für ein Cmdlet in einer einzelnen Rolle verfügbar. Geben Sie im ersten Befehl nur den Namen des Cmdlets an, bevor Sie den zweiten Befehl ausführen. Fügen Sie dann dem ersten Befehl die Parameter 1 nach der anderen hinzu, bevor Sie den zweiten Befehl ausführen.

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

  • Das Cmdlet oder die Parameter sind in einer Rolle definiert, die standardmäßig keinem Rollengruppen 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 (sofern vorhanden) zu finden, die das Cmdlet oder die Parameter enthalten, ersetzen Sie und optional mit den Werten, die Sie verwenden möchten, und führen Sie den folgenden <Cmdlet> <Parameter1>,<Parameter2>,... Befehl aus:

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

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

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, die erforderliche Rolle wird jedoch keinem Rollengruppen zugewiesen. Führen Sie den folgenden Befehl aus, um Rollen zu finden, die keinem Rollengruppen zugewiesen sind:

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

Schließen Sie Verwaltungsrollebereiche ein

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

Fügen Sie zum zweiten Befehl hinzu, um Bereichsinformationen in die Use PowerShell hinzuzufügen, um die berechtigungen zu finden, die zum Ausführen einer Cmdletausgabe *Scope* erforderlich sind:

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

Ausführliche Informationen zu Verwaltungsrollebereich finden Sie unter Understanding management role scopes.

Suchen aller Rollen, die einem bestimmten Benutzer zugewiesen sind

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

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

Beispiel:

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

Hinweis: Der Parameter RoleAssignee gibt sowohl direkte Rollenzuweisungen für 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 zu sehen, denen eine bestimmte Rolle zugewiesen ist, ersetzen Sie durch den Namen der Rolle, <Role name> 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

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 zu sehen, ersetzen Sie durch den Namen der <Role group name> Rollengruppe, und führen Sie den folgenden Befehl aus:

Get-RoleGroupMember "<Role group name>"

Beispiel:

Get-RoleGroupMember "Organization Management"

Hinweis: Führen Sie aus, um die Namen aller verfügbaren Rollengruppen zu Get-RoleGroup sehen.