Cmdlets Microsoft Entra version 2 pour la gestion des groupes

Cet article contient des exemples illustrant l’utilisation de PowerShell pour gérer vos groupes dans Microsoft Entra ID, qui fait partie de Microsoft Entra. Il fournit également des informations sur la configuration à l’aide du module Microsoft Graph PowerShell. Vous devez tout d’abord télécharger le module Microsoft Graph PowerShell.

Installer le module Microsoft Graph PowerShell

Pour installer le module MgGroup PowerShell, utilisez les commandes suivantes :

    PS C:\Windows\system32> Install-module Microsoft.Graph

Pour vérifier que le module est prêt à l’emploi, utilisez la commande suivante :

PS C:\Windows\system32> Get-Module -Name "*graph*"

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     1.27.0                Microsoft.Graph.Authentication      {Add-MgEnvironment, Connect-MgGraph, Disconnect-MgGraph, Get-MgContext…}
Script     1.27.0                Microsoft.Graph.Groups              {Add-MgGroupDriveListContentTypeCopy, Add-MgGroupDriveListContentTypeCopyF…

Vous pouvez désormais utiliser les applets de commande dans le module. Pour obtenir une description complète des cmdlets dans le module Microsoft Graph, reportez-vous à la documentation de référence en ligne pour Microsoft Graph PowerShell.

Se connecter à l’annuaire

Avant de pouvoir gérer des groupes à l’aide des cmdlets Microsoft Graph PowerShell, vous devez connecter votre session PowerShell à l’annuaire que vous voulez gérer. Utilisez la commande suivante :

    PS C:\Windows\system32> Connect-MgGraph -Scopes "Group.ReadWrite.All"

L’applet de commande vous demande de fournir les informations d’identification à utiliser pour accéder à votre répertoire. Dans cet exemple, nous utilisons karen@drumkit.onmicrosoft.com pour accéder à l’annuaire de démonstration. L’applet de commande renvoie une confirmation pour indiquer que la session a été correctement connectée à votre répertoire :

    Welcome To Microsoft Graph!

À présent, vous pouvez commencer à utiliser les cmdlets MgGraph pour gérer des groupes dans votre annuaire.

Récupérer des groupes

Pour récupérer des groupes existants à partir de votre annuaire, utilisez le cmdlet Get-MgGroups.

Pour récupérer tous les groupes dans le répertoire, utilisez l’applet de commande sans paramètres :

    PS C:\Windows\system32> Get-MgGroup -All

L’applet de commande renvoie tous les groupes dans le répertoire connecté.

Vous pouvez utiliser le paramètre -GroupId pour récupérer un groupe spécifique pour lequel vous spécifiez le paramètre objectID du groupe :

    PS C:\Windows\system32> Get-MgGroup -GroupId 5e3eba05-6c2b-4555-9909-c08e997aab18 | fl

L’applet de commande renvoie à présent l’objectID correspond à la valeur du paramètre que vous avez saisi :

AcceptedSenders               :
AllowExternalSenders          :
AppRoleAssignments            :
AssignedLabels                :
AssignedLicenses              :
AutoSubscribeNewMembers       :
Calendar                      : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCalendar
CalendarView                  :
Classification                :
Conversations                 :
CreatedDateTime               : 14-07-2023 14:25:49
CreatedOnBehalfOf             : Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObject
DeletedDateTime               :
Description                   : Sales and Marketing
DisplayName                   : Sales and Marketing
Id                            : f76cbbb8-0581-4e01-a0d4-133d3ce9197f
IsArchived                    :
IsAssignableToRole            :
IsSubscribedByMail            :
LicenseProcessingState        : Microsoft.Graph.PowerShell.Models.MicrosoftGraphLicenseProcessingState
Mail                          : SalesAndMarketing@M365x64647001.onmicrosoft.com
MailEnabled                   : True
MailNickname                  : SalesAndMarketing
RejectedSenders               :
RenewedDateTime               : 14-07-2023 14:25:49
SecurityEnabled               : True

Vous pouvez rechercher un groupe spécifique en utilisant le paramètre -filter. Ce paramètre utilise une clause de filtre ODATA et renvoie tous les groupes qui correspondent au filtre, comme dans l’exemple suivant :

    PS C:\Windows\system32> Get-MgGroup -Filter "DisplayName eq 'Intune Administrators'"


    DeletionTimeStamp            :
    ObjectId                     : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType                   : Group
    Description                  : Intune Administrators
    DirSyncEnabled               :
    DisplayName                  : Intune Administrators
    LastDirSyncTime              :
    Mail                         :
    MailEnabled                  : False
    MailNickName                 : 4dd067a0-6515-4f23-968a-cc2ffc2eff5c
    OnPremisesSecurityIdentifier :
    ProvisioningErrors           : {}
    ProxyAddresses               : {}
    SecurityEnabled              : True

Notes

Les cmdlets MgGroup PowerShell mettent en œuvre la norme de requête OData. Pour plus d’informations, consultez $filter dans options de requête système OData à l’aide du point de terminaison OData.

Voici un exemple montrant comment extraire tous les groupes qui manquent de stratégie d’expiration appliquée

Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id

Cet exemple fait de même que le précédent, mais le script exporte également les résultats au format CSV.

Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id |Export-Csv -Path {path} -NoTypeInformation

Ce dernier exemple vous montre comment ne récupérer que des groupes appartenant à Teams

Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z) and resourceProvisioningOptions/any(p:p eq 'Team')" | Format-List Id, expirationDateTime, resourceProvisioningOptions

Créer des groupes

Pour créer un groupe dans votre annuaire, utilisez le cmdlet New-MgGroup. Cette applet de commande crée un nouveau groupe de sécurité appelé « Marketing » :

$param = @{
 description="My Demo Group"
 displayName="DemoGroup"
 mailEnabled=$false
 securityEnabled=$true
 mailNickname="Demo"
}

New-MgGroup @param

Mettre à jour des groupes

Pour mettre à jour un groupe existant, utilisez le cmdlet Set-MgGroup. Dans cet exemple, nous modifions la propriété DisplayName du groupe « Administrateurs Intune ». Tout d’abord, nous recherchons le groupe à l’aide du cmdlet Get-MgGroup et filtrons à l’aide de l’attribut DisplayName :

    PS C:\Windows\system32> Get-MgGroup -Filter "DisplayName eq 'Intune Administrators'"


    DeletionTimeStamp            :
    ObjectId                     : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    ObjectType                   : Group
    Description                  : Intune Administrators
    DirSyncEnabled               :
    DisplayName                  : Intune Administrators
    LastDirSyncTime              :
    Mail                         :
    MailEnabled                  : False
    MailNickName                 : 4dd067a0-6515-4f23-968a-cc2ffc2eff5c
    OnPremisesSecurityIdentifier :
    ProvisioningErrors           : {}
    ProxyAddresses               : {}
    SecurityEnabled              : True

Ensuite, nous attribuons à la propriété Description la nouvelle valeur « Administrateurs d’appareil Intune » :

    PS C:\Windows\system32> Update-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b -Description "Demo Group Updated"

À présent, si nous recherchons à nouveau le groupe, nous constatons que la propriété Description est mise à jour pour refléter la nouvelle valeur :

    PS C:\Windows\system32> Get-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b | select displayname, description

    DisplayName Description
    ----------- -----------
    DemoGroup   Demo Group Updated

Supprimer des groupes

Pour supprimer des groupes de votre répertoire, utilisez le cmdlet Remove-MgGroup comme suit :

    PS C:\Windows\system32> Remove-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b

Gérer l’appartenance au groupe

Ajouter des membres

Pour ajouter de nouveaux membres à un groupe, utilisez la cmdlet New-MgGroupMember. Cette commande ajoute un membre au groupe Administrateurs Intune que nous avons utilisé dans l’exemple précédent :

    PS C:\Windows\system32> New-MgGroupMember -GroupId f76cbbb8-0581-4e01-a0d4-133d3ce9197f -DirectoryObjectId a88762b7-ce17-40e9-b417-0add1848eb68

Le paramètre -GroupId est l’ObjectID du groupe auquel nous souhaitons ajouter un membre et le paramètre -DirectoryObjectId est l’ObjectID de l’utilisateur que nous souhaitons ajouter au groupe en tant que membre.

Obtenir les membres

Pour obtenir les membres existants d’un groupe, utilisez le cmdlet Get-MgGroupMember, comme dans cet exemple :

    PS C:\Windows\system32> Get-MgGroupMember -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4

Id                                   DeletedDateTime
--                                   ---------------
aaaaaaaa-bbbb-cccc-1111-222222222222
bbbbbbbb-cccc-dddd-2222-333333333333

Supprimer des membres

Pour supprimer le membre que nous avons ajouté précédemment au groupe, utilisez le cmdlet Remove-MgGroupMember, comme illustré ici :

    PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4

Vérifier les membres

Pour vérifier l’appartenance d’un utilisateur à un groupe, utilisez le cmdlet Select-MgGroupIdsUserIsMemberOf. Cette applet de commande utilise comme paramètres l’ObjectId de l’utilisateur pour lequel vérifier l’appartenance au groupe et une liste de groupes pour lesquels vérifier les appartenances. La liste des groupes doit être spécifiée sous la forme d’une variable complexe de type « Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck », donc nous devons tout d’abord créer une variable de ce type :

Get-MgUserMemberOf -UserId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee

Id                                   DisplayName Description GroupTypes AccessType
--                                   ----------- ----------- ---------- ----------
5dc16449-3420-4ad5-9634-49cd04eceba0 demogroup   demogroup    {Unified}

La valeur retournée est une liste de groupes dont cet utilisateur est membre. Vous pouvez également appliquer cette méthode pour vérifier l’appartenance aux Contacts, Groupes ou Principaux du service pour une liste donnée de groupes, à l’aide de Select-MgGroupIdsContactIsMemberOf, Select-MgGroupIdsGroupIsMemberOf ou Select-MgGroupIdsServicePrincipalIsMemberOf

Désactiver la création d’un groupe par vos utilisateurs

Vous pouvez empêcher des utilisateurs non-administrateurs de créer des groupes de sécurité. Le comportement par défaut dans Microsoft Online Directory Services (MSODS) consiste à permettre aux utilisateurs non-administrateurs de créer des groupes, que la gestion de groupes en libre-service soit ou non également activée. Ce paramétrage de la gestion de groupes en libre-service (SSGM) contrôle ce comportement uniquement dans le portail Mes groupes.

Pour désactiver la création d’un groupe pour les utilisateurs non-administrateurs :

  1. Vérifiez que les utilisateurs non-administrateurs sont autorisés à créer des groupes :

    PS C:\> Get-MgBetaDirectorySetting | select -ExpandProperty values
    
     Name                            Value
     ----                            -----
     NewUnifiedGroupWritebackDefault true
     EnableMIPLabels                 false
     CustomBlockedWordsList
     EnableMSStandardBlockedWords    false
     ClassificationDescriptions
     DefaultClassification
     PrefixSuffixNamingRequirement
     AllowGuestsToBeGroupOwner       false
     AllowGuestsToAccessGroups       true
     GuestUsageGuidelinesUrl
     GroupCreationAllowedGroupId
     AllowToAddGuests                true
     UsageGuidelinesUrl
     ClassificationList
     EnableGroupCreation             true
    
  2. Si la commande retourne EnableGroupCreation : True, les utilisateurs non-administrateurs peuvent créer des groupes. Pour désactiver cette fonctionnalité :

     Install-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
     Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
     $params = @{
     TemplateId = "62375ab9-6b52-47ed-826b-58e47e0e304b"
     Values = @(		
     	@{
     		Name = "EnableGroupCreation"
     		Value = "false"
     	}		
     )
     }
     Connect-MgGraph -Scopes "Directory.ReadWrite.All"
     New-MgBetaDirectorySetting -BodyParameter $params
    
    

Gérer les propriétaires de groupes

Pour ajouter des propriétaires à un groupe, utilisez le cmdlet New-MgGroupOwner :

    PS C:\Windows\system32> New-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867

Le paramètre -GroupId est l’ObjectID du groupe auquel nous souhaitons ajouter un propriétaire et le paramètre -DirectoryObjectId est l’ObjectID de l’utilisateur ou du principal du service que nous souhaitons ajouter en tant que propriétaire.

Pour récupérer les propriétaires d’un groupe, utilisez le cmdlet Get-MgGroupOwner :

    PS C:\Windows\system32> Get-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497

L’applet de commande renvoie la liste des propriétaires (utilisateurs et principaux du service) du groupe spécifié :

    Id                                       DeletedDateTime
    --                                       ---------------
    8ee754e0-743e-4231-ace4-c28d20cf2841
    85b1df54-e5c0-4cfd-a20b-8bc1a2ca7865
    4451b332-2294-4dcf-a214-6cc805016c50

Si vous souhaitez supprimer un propriétaire d’un groupe, utilisez le cmdlet Remove-MgGroupOwnerByRef :

    PS C:\Windows\system32> Remove-MgGroupOwnerByRef -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867

Alias réservés

Quand un groupe est créé, certain points de terminaison autorisent l’utilisateur final à spécifier un mailNickname ou alias à utiliser dans l’adresse e-mail du groupe. Les groupes avec les alias de messagerie hautement privilégiés suivants peuvent uniquement être créés par un administrateur général Microsoft Entra. 

  • abuse
  • admin
  • administrator
  • hostmaster
  • majordomo
  • postmaster
  • root
  • secure
  • security
  • ssl-admin
  • webmaster

Écriture différée de groupe au niveau local

De nos jours, de nombreux groupes sont toujours gérés localement dans Active Directory. Pour répondre aux demandes de resynchronisation des groupes cloud vers les environnements locaux, la fonctionnalité de réécriture des groupes de Microsoft Entra ID à l’aide de la synchronisation cloud de Microsoft Entra est maintenant disponible.

Important

La préversion publique de l'écriture différée de groupe V2 dans Microsoft Entra Connect Sync ne sera plus disponible après le 30 juin 2024. Cette fonctionnalité ne sera plus disponible à cette date et vous ne serez plus pris en charge dans Connect Sync pour approvisionner des groupes de sécurité cloud sur Active Directory. La fonctionnalité continuera à fonctionner au-delà de la date de suppression ; toutefois, elle ne recevra plus de support après cette date et peut cesser de fonctionner à tout moment sans préavis.

Nous proposons une fonctionnalité similaire dans Microsoft Entra Cloud Sync appelée Approvisionnement de groupe vers Active Directory que vous pouvez utiliser au lieu d'Écriture différée de groupe v2 pour approvisionner des groupes de sécurité cloud sur Active Directory. Nous travaillons à améliorer cette fonctionnalité dans Cloud Sync, ainsi que d'autres nouvelles fonctionnalités que nous développons dans Cloud Sync.

Les clients qui utilisent cette fonctionnalité d'évaluation dans Connect Sync doivent basculer leur configuration de Connect Sync vers Cloud Sync. Vous pouvez choisir de procéder à la migration de toute votre synchronisation hybride vers Cloud Sync (si elle prend en charge vos besoins). Vous pouvez également exécuter Cloud Sync côte à côte et déplacer uniquement l'approvisionnement de groupes de sécurité du cloud vers Active Directory vers Cloud Sync.

Pour les clients qui approvisionnent des groupes Microsoft 365 dans Active Directory, vous pouvez continuer à utiliser l'Écriture différée de groupe v1 pour cette capacité.

Vous pouvez évaluer la possibilité de passer exclusivement à Cloud Sync en utilisant l'assistant de synchronisation des utilisateurs.

Étapes suivantes

Vous trouverez plus d’informations sur Azure Active Directory PowerShell dans la page dédiée aux cmdlets Microsoft Entra.