Polecenie cmdlet Get-MgGroup w programie Microsoft Graph PowerShell pobiera wszystkie szczegóły grupy w identyfikatorze Microsoft Entra ID. Możesz uzyskać wszystkie grupy Microsoft 365 lub określone grupy ze swojej organizacji. Chociaż wszystkie grupy możesz uzyskać w centrum administracyjnym Microsoft Entra lub centrum administracyjnym Microsoft 365, zawsze możesz zrobić więcej i zachować precyzję dzięki PowerShell. W tym artykule dowiesz się, jak używać polecenia cmdlet Get-MgGroup w PowerShell.
Zanim zaczniesz
Przed kontynuowaniem ważne jest zainstalowanie programu Microsoft Graph PowerShell i nawiązanie połączenia z nim. W przeciwnym razie polecenie cmdlet Get-MgGroup nie będzie działać.
Zainstaluj Microsoft Graph PowerShell
Uruchom PowerShell jako administrator i zainstaluj moduł Microsoft Graph PowerShell.
Install-Module Microsoft.Graph -ForceWażny:Zawsze aktualizuj moduł Microsoft Graph PowerShell do najnowszej wersji przed uruchomieniem polecenia cmdlet lub skryptu, aby zapobiec błędom i nieprawidłowym wynikom.
Połącz się z Microsoft Graph PowerShell
Musisz połączyć się z Microsoft Graph PowerShell z odpowiednimi uprawnieniami. W przeciwnym razie nie będzie można pobrać wyników grupy za pomocą polecenia cmdlet Get-MgGroup.
Connect-MgGraph -Scopes "Group.Read.All"Czy chcesz się połączyć bez interakcji użytkownika, ponieważ chcesz, aby skrypt działał automatycznie? Skonfiguruj za pomocą uwierzytelniania opartego na certyfikatach lub klucza tajnego klienta. Przeczytaj więcej w artykule Połącz się z Microsoft Graph PowerShell.
Uzyskaj informacje o grupie
Zacznijmy najpierw od podstaw, a to będzie zdobycie informacji o grupie.
Uzyskaj informacje o pojedynczej grupie
Aby uzyskać informacje o grupie, użyj metody-Identyfikator grupyparametr i dołącz identyfikator grupy.
Get-MgGroup -GroupId "14603c19-0afa-4f2f-9c13-64d25eedfca3"Możesz także skorzystać z-Filtrparametr do wyszukiwania w DisplayName w celu uzyskania informacji o grupie.
Get-MgGroup -Filter "DisplayName eq 'Group1'"DodajLista formatówcmdlet, aby uzyskać listę właściwości.
Get-MgGroup -Filter "DisplayName eq 'Group1'" | Format-ListUzyskaj informacje o wszystkich grupach
Uruchom polecenie cmdlet Get-MgGroup, w tym plik-Wszystkoparametr, aby pobrać wszystkie grupy.
Notatka:Zawsze używaj-Wszystkoparametr, aby uzyskać wszystkie wyniki. W przeciwnym razie pojawi się tylko 100 pozycji.
Get-MgGroup -AllAby policzyć wszystkie grupy, dodamyZmierz-obiektcmdlet do polecenia.
Get-MgGroup -All | Measure-Object | Select-Object -ExpandProperty CountInny sposób policzenia wszystkich grup.
(Get-MgGroup -All).CountZdobądź puste grupy
Znajdź wszystkie grupy, do których nie przypisano żadnych członków.
Przeczytaj także:Typowe polecenia programu PowerShell | Każdy administrator musi wiedzieć
Get-MgGroup -All | Where-Object { (Get-MgGroupMember -GroupId $_.Id).Count -eq 0 } | Sort-Object DisplayNameAby uzyskać wszystkie grupy i ich typy, użyj skryptu PowerShell opisanego w artykuleJak znaleźć puste grupy na platformie Microsoft 365 za pomocą programu PowerShell.
Pobierz wszystkie grupy chmur
Jeśli masz środowisko hybrydowe, grupy są synchronizowane z lokalnej usługi AD do Microsoft Entra ID. Lokalna usługa AD jest organem domeny i należy tam utworzyć grupy. Jednakże w organizacji mogą istnieć grupy utworzone bezpośrednio w chmurze.
Przefiltrujmy tylko grupy chmur i posortujmy je według wyświetlanej nazwy.
Get-MgGroup -All -Filter "OnPremisesSyncEnabled ne true" -ConsistencyLevel eventual -CountVariable CountVar | Sort-Object DisplayNameUzyskaj zsynchronizowane grupy lokalne
Zsynchronizuj tylko grupy lokalne z chmurą i posortuj je według nazwy wyświetlanej.
Get-MgGroup -All -Filter "OnPremisesSyncEnabled eq true" -ConsistencyLevel eventual -CountVariable CountVar | Sort-Object DisplayNameUzyskaj właścicieli grup
Aby dowiedzieć się, który właściciel jest przypisany do której grupy, możemy uzyskać listę wszystkich grup i ich właścicieli. Aby pobrać elementy członkowskie, należy użyć poleceń cmdlet Get-MgGroup i Get-MgGroupOwner.
Wyeksportujmy wszystkie grupy wraz z ich właścicielami do pliku CSV. Wypełnij ścieżkę CSV nalinia 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 CyanTak wygląda raport w pliku CSV.

Przeczytaj więcej oJak używać Get-MgGroupOwner w PowerShell.
Zdobądź członków grup
Aby dowiedzieć się, który członek jest przypisany do której grupy, możemy uzyskać listę wszystkich grup i ich członków. Aby pobrać elementy członkowskie, należy użyć poleceń cmdlet Get-MgGroup i Get-MgGroupMember.
Wyeksportujmy wszystkie grupy wraz z ich członkami do pliku CSV. Wypełnij ścieżkę CSV nalinia 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 CyanTak wygląda raport w pliku CSV.

Przeczytaj więcej oJak używać Get-MgGroupMember w PowerShell.
Pobierz grupy rozpoczynające się od nazwy wyświetlanej
Możemy dodaćzaczyna się odoperator i pobierz wszystkie wyniki zaczynające się od nazwy wyświetlanej.
Get-MgGroup -All -Filter "startsWith(DisplayName,'Sales')"Zamiast słowa możesz także dodać literę.
Get-MgGroup -All -Filter "startsWith(DisplayName,'S')"Uzyskaj grupy kończące się adresem e-mail
Dodajkończy sięoperator, aby pobrać wszystkie grupy zakończone określonym adresem e-mail i posortować je według wyświetlanej nazwy.
Get-MgGroup -All -Filter "endsWith(mail,'exoip.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVarWyszukaj obie domeny zakończone określonym adresem e-mail.
Get-MgGroup -All -Filter "endsWith(mail,'exoip.com') or endsWith(mail,'tajran.com')" -Sort "displayName" -ConsistencyLevel eventual -CountVariable CountVarPobierz grupy utworzone na bieżąco
Uzyskaj datę utworzenia pojedynczej grupy.
Get-MgGroup -GroupId "14603c19-0afa-4f2f-9c13-64d25eedfca3" | Select-Object DisplayName, CreatedDateTimeUzyskaj datę utworzenia wszystkich grup.
Get-MgGroup -All | Select-Object DisplayName, CreatedDateTime | Sort-Object CreatedDateTimeWeźmy wszystkie grupy utworzone w roku 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 CountPrzykłady skryptów Get-MgGroup PowerShell
Doskonałym sposobem na zrozumienie sposobu dodawania polecenia cmdlet Get-MgGroup w skryptach PowerShell jest przejrzenie przykładów skryptów PowerShell:
- Sprawdź, czy licencja użytkownika Microsoft 365 jest przypisana bezpośrednio lub dziedziczona z grupy
- Usuń licencje przypisane bezpośrednio użytkownikom z licencjami grupowymi
- Eksportuj członków grupy Microsoft 365 do pliku CSV za pomocą programu PowerShell
Wniosek
Nauczyłeś się używać Get-MgGroup w PowerShell. Polecenie cmdlet Get-MgGroup to doskonałe polecenie cmdlet umożliwiające pobieranie grup z Microsoft Entra ID i Microsoft 365. Użyj określonych parametrów lub połącz je, aby filtrować wyniki wyszukiwania zgodnie z oczekiwanym wyglądem.
Czy podobał Ci się ten artykuł? Możesz także polubić opcję Utwórz użytkowników Microsoft Entra ID z pliku CSV za pomocą programu PowerShell. Nie zapomnij nas obserwować i udostępnić ten artykuł.












