Gestion des groupes

Dans cet article, vous allez apprendre à gérer des groupes dans Microsoft Entra ID à l’aide de Microsoft Entra PowerShell. Les exemples incluent la création et la mise à jour de groupes, l’ajout d’utilisateurs et de propriétaires, l’interrogation de groupes sans propriétaire et des groupes vides.

Prerequisites

Créer des groupes

Pour créer un groupe, vérifiez que vous disposez des autorisations requises pour créer un groupe.

Connect-Entra -Scopes 'Group.ReadWrite.All' 

Pour créer un groupe, exécutez la commande suivante.

$groupParams = @{
    DisplayName = 'Contoso marketing'
    MailEnabled = $false
    SecurityEnabled = $true
    MailNickName = 'NotSet'
}
New-EntraGroup @groupParams
DisplayName  Id                                   MailNickname Description GroupTypes
-----------  --                                   ------------ ----------- ----------
Contoso marketing aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet                   {}

Cette commande crée un groupe portant le nom Contoso marketing.

Recherchez le groupe créé à l’aide de la commande suivante.

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
DisplayName        Id                                   MailNickname     Description        GroupTypes
-----------        --                                   ------------     -----------        ----------
Contoso marketing       aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet       Contoso marketing EMEA        {}

Cette commande retourne les détails du groupe nouvellement créé. Vous pouvez également utiliser le GroupId (GUID) pour rechercher, mettre à jour ou supprimer le groupe.

Mettre à jour les détails du groupe

Mettez à jour la description du groupe en exécutant la commande suivante.

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'" | Set-EntraGroup -Description 'Contoso marketing Global'

Pour confirmer la description mise à jour, réexécutez Get-EntraGroup .

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"  

Ajouter un utilisateur à un groupe

Ajoutez un utilisateur au groupe en exécutant la commande suivante. Il GroupId s’agit de l’ID de groupe et de MemberId l’ID d’utilisateur. Vous pouvez obtenir l’ID d’utilisateur à partir de l’centre d’administration Microsoft Entra ou en exécutant la commande Get-EntraUser.

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
$user = Get-EntraUser -UserId 'SawyerM@contoso.com'
Add-EntraGroupMember -GroupId $group.Id -MemberId $user.Id

Pour récupérer les membres du groupe, utilisez la commande suivante :

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
Get-EntraGroup -GroupId $group.Id | Get-EntraGroupMember | Select-Object Id, DisplayName, '@odata.type' 
Id                                   DisplayName       @odata.type                     
------------------------------------ ----------------- -------------------------------
dddddddd-3333-4444-5555-eeeeeeeeeeee Sawyer Miller     #microsoft.graph.user
eeeeeeee-4444-5555-6666-ffffffffffff Alex Wilber       #microsoft.graph.user
aaaaaaaa-6666-7777-8888-bbbbbbbbbbbb My Application    #microsoft.graph.servicePrincipal
cccccccc-8888-9999-0000-dddddddddddd Contoso Group     #microsoft.graph.group

Ajouter un utilisateur en tant que propriétaire de groupe

Ajoutez un propriétaire de groupe à un groupe en exécutant la commande suivante. Il GroupId s’agit de l’ID de groupe et de OwnerId l’ID d’utilisateur.

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
$owner = Get-EntraUser -UserId 'AdeleV@contoso.com'
Add-EntraGroupOwner -GroupId $group.Id -OwnerId $owner.Id

Pour confirmer le propriétaire du groupe mis à jour, utilisez la commande :

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
Get-EntraGroup -GroupId $group.Id | Get-EntraGroupOwner | Select-Object Id, DisplayName, '@odata.type'
Id                                   DisplayName       @odata.type
------------------------------------ ----------------- ---------------------------
aaaaaaaa-6666-7777-8888-bbbbbbbbbbbb Adele Vance       #microsoft.graph.user

Interroger des groupes sans propriétaire ou vides

Pour interroger des groupes sans propriétaires, exécutez la commande suivante.

$allGroups = Get-EntraGroup -All
$groupsWithoutOwners = foreach ($group in $allGroups) {
    $owners = Get-EntraGroupOwner -GroupId $group.Id
    if ($owners.Count -eq 0) {
        $group
    }
}
$groupsWithoutOwners | Format-Table DisplayName, Id, GroupTypes
DisplayName              Id                                   GroupTypes
-----------              --                                   ----------
Contoso marketing        aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb {}
HelpDesk admin group     eeeeeeee-4444-5555-6666-ffffffffffff {}

Pour interroger des groupes sans membres (groupes vides), exécutez la commande suivante.

$allGroups = Get-EntraGroup -All
$groupsWithoutMembers = foreach ($group in $allGroups) {
    $members = Get-EntraGroupMember -GroupId $group.Id
    if ($members.Count -eq 0) {
        $group
    }
}
$groupsWithoutMembers | Format-Table DisplayName, Id, GroupTypes
DisplayName             Id                                   GroupTypes
-----------            --                                   ----------
Contoso marketing      aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb {}
HelpDesk admin group   eeeeeeee-4444-5555-6666-ffffffffffff {}

Nettoyer les ressources

Pour supprimer le groupe, utilisez la commande suivante :

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'" | Remove-EntraGroup