La cmdlet Get-MgGroup dans Microsoft Graph PowerShell récupère tous les détails du groupe dans Microsoft Entra ID. Vous pouvez obtenir tous les groupes Microsoft 365 ou des groupes spécifiques de votre organisation. Bien que vous puissiez obtenir tous les groupes dans le centre d'administration Microsoft Entra ou le centre d'administration Microsoft 365, vous pouvez toujours en faire plus et être précis avec PowerShell. Dans cet article, vous apprendrez à utiliser la cmdlet Get-MgGroup dans PowerShell.
Avant de commencer
Il est important que vous installiez et vous connectiez à Microsoft Graph PowerShell avant de continuer. Sinon, la cmdlet Get-MgGroup ne fonctionnera pas.
Installer Microsoft Graph PowerShell
Exécutez PowerShell en tant qu'administrateur et installez le module Microsoft Graph PowerShell.
Install-Module Microsoft.Graph -ForceImportant:Mettez toujours à jour vers la dernière version du module Microsoft Graph PowerShell avant d’exécuter une applet de commande ou un script pour éviter les erreurs et les résultats incorrects.
Connectez-vous à Microsoft Graph PowerShell
Vous devez vous connecter à Microsoft Graph PowerShell avec les autorisations appropriées. Si vous ne le faites pas, vous ne pourrez pas récupérer les résultats du groupe avec la cmdlet Get-MgGroup.
Connect-MgGraph -Scopes "Group.Read.All"Souhaitez-vous vous connecter sans interaction de l'utilisateur car vous souhaitez qu'un script s'exécute automatiquement ? Configurez-le avec une authentification basée sur un certificat ou un secret client. Pour en savoir plus, consultez l'article Connectez-vous à Microsoft Graph PowerShell.
Obtenir des informations sur le groupe
Commençons par les bases, c'est-à-dire obtenir les informations du groupe.
Obtenir des informations sur un seul groupe
Pour obtenir les informations du groupe, utilisez le-IDGroupeparamètre et ajoutez l’ID du groupe.
Get-MgGroup -GroupId "14603c19-0afa-4f2f-9c13-64d25eedfca3"Vous pouvez également utiliser le-Filtreparamètre à rechercher sur DisplayName pour obtenir les informations sur le groupe.
Get-MgGroup -Filter "DisplayName eq 'Group1'"Ajoutez leListe de formatsapplet de commande pour obtenir une liste de propriétés.
Get-MgGroup -Filter "DisplayName eq 'Group1'" | Format-ListObtenez toutes les informations sur les groupes
Exécutez l'applet de commande Get-MgGroup, y compris le-Tousparamètre, pour récupérer tous les groupes.
Note:Utilisez toujours le-Tousparamètre pour obtenir tous les résultats. Sinon, seuls 100 éléments apparaîtront.
Get-MgGroup -AllPour compter tous les groupes, on ajoutera lesMesure-Objetapplet de commande à la commande.
Get-MgGroup -All | Measure-Object | Select-Object -ExpandProperty CountUne autre façon de compter tous les groupes.
(Get-MgGroup -All).CountObtenez des groupes vides
Recherchez tous les groupes auxquels aucun membre n’est affecté.
Get-MgGroup -All | Where-Object { (Get-MgGroupMember -GroupId $_.Id).Count -eq 0 } | Sort-Object DisplayNamePour obtenir tous les groupes et leurs types de groupe, utilisez le script PowerShell dans l'articleComment rechercher des groupes vides dans Microsoft 365 avec PowerShell.
Obtenez tous les groupes de cloud
Si vous disposez d’un environnement hybride, les groupes sont synchronisés depuis AD sur site vers Microsoft Entra ID. L'AD sur site est votre autorité de domaine et vous devez y créer les groupes. Toutefois, certains groupes de l'organisation peuvent être directement créés dans le cloud.
Filtrons uniquement sur les groupes de cloud et trions-les par nom d'affichage.
En savoir plus:Correctif : Windows PowerShell manquant dans le menu Démarrer
Get-MgGroup -All -Filter "OnPremisesSyncEnabled ne true" -ConsistencyLevel eventual -CountVariable CountVar | Sort-Object DisplayNameObtenez des groupes synchronisés sur site
Synchronisez uniquement les groupes sur site avec le cloud et triez-les par nom d'affichage.
Get-MgGroup -All -Filter "OnPremisesSyncEnabled eq true" -ConsistencyLevel eventual -CountVariable CountVar | Sort-Object DisplayNameObtenir les propriétaires des groupes
Pour savoir quel propriétaire est affecté à quel groupe, nous pouvons obtenir une liste de tous les groupes et de leurs propriétaires. Vous devez utiliser les applets de commande Get-MgGroup et Get-MgGroupOwner pour récupérer les membres.
Exportons tous les groupes, y compris leurs propriétaires, vers un fichier CSV. Remplissez le chemin CSV surligne 4.
Connect-MgGraph -Scopes "Group.Read.All", "Directory.Read.All" -NoWelcome
# Define the CSV file path
$csvPath = "C:tempGroupOwners.csv"
# Get all groups
$Groups = Get-MgGroup -All
$TotalGroups = $Groups.Count
$ProgressCounter = 0
$Report = [System.Collections.Generic.List[Object]]::new()
# Loop through each group
foreach ($Group in $Groups) {
$ProgressCounter++
$Percentage = [Math]::Round(($ProgressCounter / $TotalGroups) * 100, 2)
Write-Progress -Activity "Processing Groups - $Percentage%" -Status "Checking owners for $($Group.DisplayName)" -PercentComplete $Percentage
$Owners = Get-MgGroupOwner -GroupId $Group.Id -All | Select-Object -ExpandProperty AdditionalProperties
if ($Owners) {
foreach ($Owner in $Owners) {
$OwnerType = switch ($Owner.'@odata.type') {
"#microsoft.graph.user" { "User" }
"#microsoft.graph.group" { "Group" }
"#microsoft.graph.servicePrincipal" { "Service Principal" }
"#microsoft.graph.device" { "Device" }
"#microsoft.graph.orgContact" { "Contact" }
default { "Unknown" }
}
$ReportLine = [PSCustomObject]@{
GroupName = $Group.DisplayName
OwnerName = $Owner.displayName
OwnerEmail = $Owner.mail
OwnerUserPrincipalName = $Owner.userPrincipalName
OwnerType = $OwnerType
}
$Report.Add($ReportLine)
}
}
else {
$ReportLine = [PSCustomObject]@{
GroupName = $Group.DisplayName
OwnerName = ""
OwnerEmail = ""
OwnerUserPrincipalName = ""
OwnerType = ""
}
$Report.Add($ReportLine)
}
}
# Complete the progress bar
Write-Progress -Activity "Processing Groups" -Status "Completed" -PercentComplete 100 -Completed
# Export the report to CSV
$Report | Sort-Object GroupName | Export-Csv -Path $csvPath -NoTypeInformation -Encoding utf8
Write-Host "Report exported to $csvPath" -ForegroundColor CyanVoici à quoi ressemble le rapport du fichier CSV.

En savoir plus surComment utiliser Get-MgGroupOwner dans PowerShell.
Obtenez des membres de groupes
Pour savoir quel membre est affecté à quel groupe, nous pouvons obtenir une liste de tous les groupes et de leurs membres. Vous devez utiliser les applets de commande Get-MgGroup et Get-MgGroupMember pour récupérer les membres.
Exportons tous les groupes, y compris leurs membres, vers un fichier CSV. Remplissez le chemin CSV surligne 4.
Connect-MgGraph -Scopes "Group.Read.All", "Directory.Read.All" -NoWelcome
# Define the CSV file path
$csvPath = "C:tempGroupMembers.csv"
# Get all groups
$Groups = Get-MgGroup -All
$TotalGroups = $Groups.Count
$ProgressCounter = 0
$Report = [System.Collections.Generic.List[Object]]::new()
# Loop through each group
foreach ($Group in $Groups) {
$ProgressCounter++
$Percentage = [Math]::Round(($ProgressCounter / $TotalGroups) * 100, 2)
Write-Progress -Activity "Processing Groups - $Percentage%" -Status "Checking members for $($Group.DisplayName)" -PercentComplete $Percentage
$Members = Get-MgGroupMember -GroupId $Group.Id -All | Select-Object -ExpandProperty AdditionalProperties
if ($Members) {
foreach ($Member in $Members) {
$memberType = switch ($Member.'@odata.type') {
"#microsoft.graph.user" { "User" }
"#microsoft.graph.group" { "Group" }
"#microsoft.graph.servicePrincipal" { "Service Principal" }
"#microsoft.graph.device" { "Device" }
"#microsoft.graph.orgContact" { "Contact" }
default { "Unknown" }
}
$ReportLine = [PSCustomObject]@{
GroupName = $Group.DisplayName
MemberName = $Member.displayName
MemberEmail = $Member.mail
MemberUserPrincipalName = $Member.userPrincipalName
MemberType = $memberType
}
$Report.Add($ReportLine)
}
}
else {
$ReportLine = [PSCustomObject]@{
GroupName = $Group.DisplayName
MemberName = ""
MemberEmail = ""
MemberUserPrincipalName = ""
MemberType = ""
}
$Report.Add($ReportLine)
}
}
# Complete the progress bar
Write-Progress -Activity "Processing Groups" -Status "Completed" -PercentComplete 100 -Completed
# Export the report to CSV
$Report | Sort-Object GroupName | Export-Csv -Path $csvPath -NoTypeInformation -Encoding utf8
Write-Host "Report exported to $csvPath" -ForegroundColor CyanVoici à quoi ressemble le rapport du fichier CSV.

En savoir plus surComment utiliser Get-MgGroupMember dans PowerShell.
Obtenez des groupes commençant par un nom d'affichage
On peut ajouter lecommenceAvecopérateur et récupérez tous les résultats qui commencent par un nom d’affichage.
Get-MgGroup -All -Filter "startsWith(DisplayName,'Sales')"Vous pouvez également ajouter une lettre au lieu d'un mot.
Get-MgGroup -All -Filter "startsWith(DisplayName,'S')"Obtenez des groupes qui se terminent par une adresse e-mail
Ajoutez lese termine paropérateur pour récupérer tous les groupes qui se terminent par une adresse e-mail spécifique et les trier par nom d'affichage.
Get-MgGroup -All -Filter "endsWith(mail,'exoip.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVarRecherchez les deux domaines qui se terminent par une adresse e-mail spécifique.
Get-MgGroup -All -Filter "endsWith(mail,'exoip.com') or endsWith(mail,'tajran.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVarObtenez les groupes créés à la date
Obtenez la date de création d'un seul groupe.
Get-MgGroup -GroupId "14603c19-0afa-4f2f-9c13-64d25eedfca3" | Select-Object DisplayName, CreatedDateTimeObtenez la date de création de tous les groupes.
Get-MgGroup -All | Select-Object DisplayName, CreatedDateTime | Sort-Object CreatedDateTimeRécupérons tous les groupes créés en 2024.
Get-MgGroup -All -Filter ("CreatedDateTime ge " + (Get-Date "2024-01-01T00:00:00Z").ToString("yyyy-MM-ddTHH:mm:ssZ") + " and CreatedDateTime le " + (Get-Date "2024-12-31T23:59:59Z").ToString("yyyy-MM-ddTHH:mm:ssZ")) -ConsistencyLevel eventual -CountVariable CountExemples de scripts PowerShell Get-MgGroup
Un excellent moyen de comprendre comment ajouter l'applet de commande Get-MgGroup dans les scripts PowerShell consiste à parcourir les exemples de script PowerShell :
- Vérifiez que la licence utilisateur Microsoft 365 est attribuée directement ou héritée du groupe
- Supprimer les licences attribuées directement pour les utilisateurs disposant de licences de groupe
- Exporter les membres du groupe Microsoft 365 au format CSV avec PowerShell
Conclusion
Vous avez appris à utiliser Get-MgGroup dans PowerShell. La cmdlet Get-MgGroup est une excellente applet de commande pour récupérer les groupes de Microsoft Entra ID et Microsoft 365. Utilisez des paramètres spécifiques ou combinez-les pour filtrer les résultats de la recherche en fonction de la façon dont vous souhaitez que les résultats apparaissent.
Avez-vous apprécié cet article ? Vous aimerez peut-être également Créer des utilisateurs Microsoft Entra ID à partir d’un CSV avec PowerShell. N'oubliez pas de nous suivre et de partager cet article.








![[Fix] Impossible d'installer Windows 8.1 ou Server 2012 R2 dans Oracle Virtual Box](https://media.askvg.com/articles/images5/Windows_8_1_VirtualBox_Install_Error.png)



