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 nur die PowerShell zum Ausführen dieser Prozedur 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 durch die Rollen „Konfiguration (nur Anzeige)" und „Rollenverwaltung" gewährt, die den Rollengruppen „Organisationsverwaltung mit Leserechten" und „Organisationsverwaltung" zugewiesen sind.

  • Die Verfahren in diesem Thema funktionieren nicht im Office 365 Security #a0 Compliance Center. Weitere Informationen zu Berechtigungen im Security #a0 Compliance Center finden Sie unter Permissions in Office 365 Compliance Center.

  • Die Verfahren in diesem Thema funktionieren in Exchange Online Protection (EOP) nicht. Weitere Informationen zu Berechtigungen in EoP finden Sie unter Feature Permissions in EoP.

Tip

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. Öffnen Sie die PowerShell-Umgebung, in der das Cmdlet ausgeführt werden soll.

  2. Führen Sie den folgenden Befehl aus, um das Cmdlet und optional einen oder mehrere Parameter für das Cmdlet anzugeben. Stellen Sie sicher, <Cmdlet> dass Sie ersetzen <Parameter1>,<Parameter2>,... und optional mit dem tatsächlichen Cmdlet und den Namen der Parameter, die Sie interessieren. Wenn Sie mehrere Parameter durch Kommas getrennt angeben, werden nur die Rollen zurückgegeben, die alle Parameter enthalten.

    $Perms = Get-ManagementRole -Cmdlet <Cmdlet> [-CmdletParameters <Parameter1>,<Parameter2>,...]
    
  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 oder die Kombination aus Cmdlet und Parametern gewährt. Beachten Sie, dass Rollennamen, die mit "My" beginnen, Benutzerrollen sind, mit denen reguläre Benutzer auf Objekte zugreifen können, die Sie besitzen (beispielsweise ein eigenes Postfach oder deren Verteilergruppen).

  • RoleAssigneeType und RoleAssigneeName: diese Werte sind miteinander verknüpft. RoleAssigneeType ist der Typ des Objekts, dem die Rolle zugewiesen ist, und RoleAssigneeName ist der Name des Objekts. RoleAssigneeType kann eine Rollengruppe, Zuweisungsrichtlinie, Sicherheitsgruppe oder ein Benutzer sein. In der Regel werden Administratorrollen Rollengruppen zugewiesen.

Problembehandlung

Was geschieht, wenn keine Ergebnisse angezeigt werden?

  • Stellen Sie sicher, dass Sie die Namen von Cmdlet und Parametern richtig eingegeben haben.

  • Möglicherweise haben Sie zu viele Parameter eingegeben, und alle für das Cmdlet angegebenen Parameter sind nicht in einer einzelnen Rolle definiert. Geben Sie in Schritt 2 nur den Cmdlet-Namen an, und führen Sie Schritt 3 aus, um sicherzustellen, dass das Cmdlet in Ihrer Umgebung verfügbar ist. Fügen Sie dann in Schritt 2 jeweils einen Parameter hinzu, bevor Sie Schritt 3 ausführen.

  • Diese möglichen Ursachen haben die gleiche Lösung:

    • Möglicherweise haben Sie ein Cmdlet oder Parameter eingegeben, die in einer Rolle definiert sind, die standardmäßig niemandem zugeordnet ist.

    • Möglicherweise haben Sie auch ein Cmdlet oder Parameter eingegeben, die in Ihrer Umgebung nicht verfügbar sind. Beispielsweise, wenn Sie ein Exchange Online-Cmdlet oder Parameter in einer lokalen Exchange 2016-Umgebung eingegeben haben.

    Führen Sie den folgenden Befehl aus, um die Rolle zu suchen, die das Cmdlet oder die Parameter enthält. Stellen Sie sicher, <Cmdlet> dass Sie ersetzen <Parameter1>,<Parameter2>,... und optional mit dem tatsächlichen Cmdlet und den Namen der Parameter, die Sie interessieren. Beachten Sie, dass Sie in den Cmdlet-und Parameternamen Platzhalterzeichen (*) verwenden können *-Mailbox*(beispielsweise).

    Get-ManagementRoleEntry -Identity *\<Cmdlet>  [-Parameters <Parameter1>,<Parameter2>,... ]
    
    • 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 einen oder mehrere Einträge für Name, Roleund Parameterszurückgibt, ist das Cmdlet (oder die Parameter für das Cmdlet) in Ihrer Umgebung verfügbar, die erforderliche Rolle wird jedoch niemandem zugewiesen. Führen Sie den folgenden Befehl aus, um alle Rollen anzuzeigen, die keinem Benutzer zugewiesen sind:

      $na = Get-ManagementRole ; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}
      
  • Der Verwaltungsrollenumfang definiert, in welchen Bereichen (insbesondere Schreibbereiche) Cmdlets ausgeführt werden können.

    Um Bereichsinformationen in Schritt 2 hinzuzufügen, ersetzen Sie den folgenden Befehl:

    $Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}
    
  • Um alle an einen bestimmten Benutzer zugewiesenen Rollen anzuzeigen, 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
    
  • Um alle Benutzer anzuzeigen, denen eine bestimmte Rolle zugewiesen ist, 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
    
  • Um die Mitglieder einer bestimmten Rollengruppe anzuzeigen, führen Sie den folgenden Befehl aus:

    Get-RoleGroupMember "<Role group name>"
    

    Beispiel:

    Get-RoleGroupMember "Organization Management"