Attribuer des rôles d’administrateur à des comptes d’utilisateur Microsoft 365 avec PowerShell

Cet article est valable pour Microsoft 365 Entreprise et Office 365 Entreprise.

Vous pouvez facilement attribuer des rôles à des comptes d’utilisateur à l’aide de PowerShell pour Microsoft 365.

Remarque

Découvrez comment attribuer des rôles d’administrateur à des comptes d’utilisateur avec le Centre d'administration Microsoft 365.

Pour obtenir la liste des ressources supplémentaires, consultez Gérer les utilisateurs et les groupes.

Attribuer des rôles à des comptes d’utilisateur à l’aide de Microsoft Graph PowerShell

Remarque

Le module Azure Active Directory est remplacé par le Kit de développement logiciel (SDK) Microsoft Graph PowerShell. Vous pouvez utiliser le kit de développement logiciel (SDK) PowerShell Microsoft Graph pour accéder à toutes les API Microsoft Graph. Pour plus d’informations, consultez Démarrage avec le kit de développement logiciel (SDK) PowerShell Microsoft Graph.

Tout d’abord, utilisez un compte d’administrateur de contrôleur de domaine Microsoft Entra, de Administration d’application cloud ou d’administrateur général pour vous connecter à votre locataire Microsoft 365. Les applets de commande de cet article nécessitent l’étendue d’autorisation RoleManagement.ReadWrite.Directory ou l’une des autres autorisations répertoriées dans la page de référence « List subscribedSkus » API Graph. Certaines commandes de cet article peuvent nécessiter des étendues d’autorisation différentes, auquel cas cela sera indiqué dans la section appropriée.

Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

Pour plus d’informations, consultez la rubrique À propos des rôles d’administrateur.

Ensuite, identifiez le nom de connexion du compte d’utilisateur que vous souhaitez ajouter à un rôle (exemple : fredsm@contoso.com). Il s’agit également du nom d’utilisateur principal (UPN).

Ensuite, déterminez le nom du rôle. Consultez Microsoft Entra rôles intégrés.

Remarque

Soyez attentif aux notes dans cet article. Certains noms de rôle sont différents pour Azure Active Directory (Azure AD) PowerShell. Par exemple, le rôle Administrateur SharePoint dans le Centre d'administration Microsoft 365 est Administrateur de service SharePoint dans Azure AD PowerShell.

Ensuite, renseignez l’UPN utilisateur et les noms de rôle, puis exécutez les commandes suivantes :

$userUPN="<user UPN>"
$roleName="<role name>"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
    $roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
    New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
    $role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
    "@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
    }
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember

Voici un exemple d’ensemble de commandes terminé qui attribue le rôle Administrateur de service SharePoint au belindan@contoso.com compte :

$userUPN="adelev@contoso.com"
$roleName="Exchange Administrator"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
    $roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
    New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
    $role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
    "@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
    }
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember

Pour afficher la liste des ID d’utilisateur pour un rôle d’administrateur spécifique, utilisez ces commandes.

$roleName="<role name>"
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgDirectoryRole | Where-Object { $_.DisplayName -eq $roleName } | ForEach-Object { Get-MgDirectoryRoleMember -DirectoryRoleId $_.Id }

Voir aussi