Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez utiliser PowerShell pour rechercher les autorisations requises pour exécuter une cmdlet Exchange ou Exchange Online. Cette procédure décrit les rôles et groupes de rôles de gestion Contrôle d'accès en fonction du rôle (RBAC) qui permettent d'accéder à une cmdlet donnée, même si votre organisation dispose de rôles personnalisés, de groupes de rôles personnalisés ou d'attributions de rôle personnalisées.
Conseil
Pour le moment, les procédures présentées dans cet article ne fonctionnent pas avec les applets de commande du Groupe Microsoft 365 (*-UnifiedGroup) dans Exchange Online PowerShell.
Ce qu'il faut savoir avant de commencer
Durée estimée de la procédure : moins de 5 minutes.
Vous pouvez uniquement utiliser PowerShell pour effectuer ces procédures.
Les procédures présentées dans cet article ne fonctionnent pas dans Security & Compliance PowerShell. Pour plus d’informations sur les autorisations de sécurité & de conformité, consultez les articles suivants :
Vous devez disposer d’autorisations pour pouvoir effectuer les procédures décrites dans cet article. Vous avez le choix parmi les options suivantes :
Autorisations Exchange Server : appartenance à l’un des groupes de rôles suivants :
- Gestion de la conformité
- Gestion de l'hygiène
- Organization Management
- View-Only Organization Management
Autorisations Exchange Online : appartenance à l’un des groupes de rôles suivants :
- Gestion de la conformité
- Installation déléguée
- Gestion de l'hygiène
- Organization Management
- View-Only Organization Management
Autorisations de Microsoft Entra : L’appartenance aux rôles d’administrateur* général ou de lecteur général donne aux utilisateurs les autorisations requises et les autorisations pour d’autres fonctionnalités de Microsoft 365.
Importante
* Microsoft vous recommande d’utiliser les rôles disposant du moins d’autorisations. L’utilisation de comptes à autorisations réduites permet d’améliorer la sécurité de votre organisation. Le rôle d’administrateur général dispose de privilèges élevés. Il doit être limité aux scénarios d’urgence lorsque vous ne pouvez pas utiliser un rôle existant.
Utiliser PowerShell pour rechercher les autorisations requises pour exécuter une cmdlet
Si ce n’est pas déjà fait, ouvrez l’environnement Exchange PowerShell qui vous intéresse :
- Exchange Online PowerShell : Connectez-vous à Exchange Online PowerShell.
- Exchange Server : Ouvrez l’environnement de ligne de commande Exchange Management Shell ou connectez-vous à des serveurs Exchange à l’aide de Remote PowerShell.
Remplacez
<Cmdlet>et facultativement,<Parameter1>,<Parameter2>,...par les valeurs que vous souhaitez utiliser, puis exécutez la commande suivante :$Perms = Get-ManagementRole -Cmdlet <Cmdlet> [-CmdletParameters <Parameter1>,<Parameter2>,...]Conseil
Si vous spécifiez plusieurs paramètres, seuls les rôles qui incluent tous les paramètres spécifiés sur l’applet de commande sont retournés.
Exécutez la commande suivante :
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-Table -Auto Role,RoleAssigneeType,RoleAssigneeName}
Interprétation des résultats
Les résultats contiennent les informations suivantes :
Rôle : indique le rôle qui donne accès à l’applet de commande ou la combinaison de l’applet de commande et des paramètres. Les noms de rôle commençant par « Mon » sont des rôles d’utilisateur qui permettent aux utilisateurs standard d’opérer sur des objets dont ils sont propriétaires (par exemple, leur propre boîte aux lettres ou leurs groupes de distribution).
RoleAssigneeType et RoleAssigneeName : Ces valeurs sont interdépendantes :
- RoleAssigneeType est le type d’objet auquel le rôle est attribué. Pour les rôles d’administrateur, cette valeur correspond généralement à un groupe de rôles, mais il peut également s’agir d’une stratégie d’attribution de rôle, d’un groupe de sécurité ou d’un utilisateur.
- RoleAssigneeName est le nom du groupe de rôles, de la stratégie d’attribution des rôles, du groupe de sécurité ou de l’utilisateur.
Résolution des problèmes
Que faire si je n’obtiens aucun résultat ?
- Vérifiez que vous avez correctement entré les noms de cmdlet et de paramètre.
- Il est possible que plusieurs paramètres d’une cmdlet ne soient pas définis dans un seul rôle (certains paramètres peuvent être dans un rôle, tandis que d’autres dans un rôle différent). Procédons étape par étape :
- Exécutez la première commande sans paramètres, puis exécutez la deuxième.
- Ajoutez un paramètre à la première commande, puis exécutez la seconde.
- Répétez l’étape précédente en ajoutant d’autres paramètres à la première commande avant d’exécuter la deuxième commande.
Dans le cas contraire, aucun résultat n’est probablement causé par l’une des conditions suivantes :
- L’applet de commande ou les paramètres sont définis dans un rôle qui n’est affecté à aucun groupe de rôles par défaut.
- L’applet de commande ou les paramètres ne sont pas disponibles dans votre environnement. Par exemple, vous avez spécifié une applet de commande Exchange Online ou Exchange Online paramètres dans un environnement Exchange local.
Pour rechercher les rôles de votre environnement (le cas échéant) qui contiennent l’applet de commande ou des paramètres, <Parameter1>,<Parameter2>,... remplacez <Cmdlet> et éventuellement par les valeurs que vous souhaitez utiliser, puis exécutez la commande suivante :
Get-ManagementRoleEntry -Identity *\<Cmdlet> [-Parameters <Parameter1>,<Parameter2>,...]
Conseil
Vous pouvez utiliser des caractères génériques (*) dans les noms des applets de commande et des paramètres (par exemple, *-Mailbox*).
Si la commande renvoie une erreur indiquant que l'objet est introuvable, la cmdlet ou les paramètres ne sont pas disponibles dans votre environnement.
Si la commande renvoie des résultats, l’applet de commande ou les paramètres sont disponibles dans votre environnement, mais le rôle requis n’est pas attribué à des groupes de rôles. Pour rechercher des rôles qui ne sont affectés à aucun groupe de rôles, exécutez la commande suivante :
$na = Get-ManagementRole; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}
Procédures associées
Inclure des étendues de rôle de gestion
Les étendues de rôle de gestion (en particulier, les étendues d’écriture) définissent où les applets de commande peuvent opérer. Par exemple, toute l’organisation ou seulement sur des objets utilisateur spécifiques.
Pour inclure des informations d’étendue dans Utiliser PowerShell pour trouver les autorisations nécessaires pour exécuter une sortie de cmdlet , ajoutez *Scope* à la deuxième commande :
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}
Pour plus d’informations sur les étendues des rôles de gestion, consultez Présentation des étendues de rôle de gestion.
Rechercher tous les rôles attribués à un utilisateur spécifique
Pour afficher tous les rôles attribués à un utilisateur spécifique, remplacez-les par <UserIdentity> le nom, l’alias ou l’adresse e-mail de l’utilisateur, puis exécutez la commande suivante :
Get-ManagementRoleAssignment -RoleAssignee <UserIdentity> -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
Par exemple :
Get-ManagementRoleAssignment -RoleAssignee julia@contoso.com -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
Conseil
Le paramètre RoleAssignee retourne à la fois les attributions de rôles directs aux utilisateurs (peu courants) et les attributions de rôles indirects accordées à l’utilisateur via son appartenance à des groupes de rôles.
Rechercher tous les utilisateurs auxquels un rôle spécifique a été attribué
Pour afficher tous les utilisateurs auxquels un rôle spécifique est attribué, remplacez-le <Role name> par le nom du rôle et exécutez la commande suivante :
Get-ManagementRoleAssignment -Role "<Role name>" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
Par exemple :
Get-ManagementRoleAssignment -Role "Mailbox Import Export" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
Rechercher les membres d’un groupe de rôles
Pour afficher les membres d’un groupe de rôles spécifique, remplacez-les <Role group name> par le nom du groupe de rôles et exécutez la commande suivante :
Get-RoleGroupMember "<Role group name>"
Par exemple :
Get-RoleGroupMember "Organization Management"
Conseil
Pour afficher les noms de tous les groupes de rôles disponibles, exécutez Get-RoleGroup.