Polecenia cmdlet programu Microsoft Entra w wersji 2 na potrzeby zarządzania grupami
Ten artykuł zawiera przykłady używania programu PowerShell do zarządzania grupami w usłudze Microsoft Entra ID, części firmy Microsoft Entra. Informuje również, jak skonfigurować moduł Microsoft Graph PowerShell. Najpierw należy pobrać moduł Programu PowerShell programu Microsoft Graph.
Instalowanie modułu Programu PowerShell programu Microsoft Graph
Aby zainstalować moduł MgGroup PowerShell, użyj następujących poleceń:
PS C:\Windows\system32> Install-module Microsoft.Graph
Aby sprawdzić, czy moduł jest gotowy do użycia, użyj następującego polecenia:
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…
Teraz możesz zacząć używać cmdletów w module. Pełny opis poleceń cmdlet w module programu Microsoft Graph można znaleźć w dokumentacji referencyjnej online dla programu Microsoft Graph PowerShell.
Nawiązywanie połączenia z katalogiem
Przed rozpoczęciem zarządzania grupami przy użyciu poleceń cmdlet programu PowerShell programu Microsoft Graph należy połączyć sesję programu PowerShell z katalogiem, którym chcesz zarządzać. Użyj następującego polecenia:
PS C:\Windows\system32> Connect-MgGraph -Scopes "Group.ReadWrite.All"
Polecenie cmdlet wyświetli monit o podanie poświadczeń, których chcesz użyć do uzyskania dostępu do katalogu. W tym przykładzie używamy karen@drumkit.onmicrosoft.com, aby uzyskać dostęp do katalogu demonstracyjnego. Polecenie cmdlet zwraca potwierdzenie, wskazujące, że sesja została pomyślnie połączona z katalogiem.
Welcome To Microsoft Graph!
Teraz możesz zacząć używać poleceń cmdlet MgGraph do zarządzania grupami w katalogu.
Pobierz grupy
Aby pobrać istniejące grupy z katalogu, użyj polecenia cmdlet Get-MgGroups.
Aby pobrać wszystkie grupy w katalogu, użyj polecenia cmdlet bez parametrów:
PS C:\Windows\system32> Get-MgGroup -All
Polecenie cmdlet zwraca wszystkie grupy w połączonym katalogu.
Możesz użyć parametru -GroupId, aby pobrać określoną grupę, dla której określisz identyfikator objectID grupy:
PS C:\Windows\system32> Get-MgGroup -GroupId 5e3eba05-6c2b-4555-9909-c08e997aab18 | fl
Polecenie cmdlet zwraca teraz grupę, której identyfikator objectID odpowiada wartości wprowadzonego parametru:
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
Możesz wyszukać określoną grupę przy użyciu parametru -filter. Ten parametr przyjmuje klauzulę filtru ODATA i zwraca wszystkie grupy zgodne z filtrem, jak w poniższym przykładzie:
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
Uwaga
Polecenia cmdlet programu PowerShell grupy MgGroup implementują standard zapytania OData. Aby uzyskać więcej informacji, zobacz $filter w opcjach zapytania systemu OData przy użyciu punktu końcowego OData.
Oto przykład pokazujący, jak wyciągnąć wszystkie grupy, które nie mają zastosowanej polityki wygaśnięcia
Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id
W tym przykładzie jest to samo co poprzedni, ale skrypt eksportuje również wyniki do pliku 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
W tym ostatnim przykładzie pokazano, jak pobrać tylko grupy należące do usługi 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
Utwórz grupy
Aby utworzyć nową grupę w katalogu, użyj polecenia cmdlet New-MgGroup. To polecenie cmdlet (komenda) tworzy nową grupę zabezpieczeń o nazwie "Marketing".
$param = @{
description="My Demo Group"
displayName="DemoGroup"
mailEnabled=$false
securityEnabled=$true
mailNickname="Demo"
}
New-MgGroup @param
Zaktualizuj grupy
Aby zaktualizować istniejącą grupę, użyj polecenia cmdlet Update-MgGroup. W tym przykładzie zmieniamy właściwość DisplayName grupy "Administratorzy usługi Intune". Najpierw znajdujemy grupę przy użyciu polecenia cmdlet Get-MgGroup i filtrujemy przy użyciu atrybutu 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
Następnie zmieniamy właściwość Opis na nową wartość "Administratorzy urządzeń Intune".
PS C:\Windows\system32> Update-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b -Description "Demo Group Updated"
Teraz, jeśli ponownie znajdziemy grupę, zobaczymy, że właściwość Description zostanie zaktualizowana, aby odzwierciedlić nową wartość:
PS C:\Windows\system32> Get-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b | select displayname, description
DisplayName Description
----------- -----------
DemoGroup Demo Group Updated
Usuwanie grup
Aby usunąć grupy z katalogu, użyj polecenia cmdlet Remove-MgGroup w następujący sposób:
PS C:\Windows\system32> Remove-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b
Zarządzanie członkostwem w grupie
Dodaj członków
Aby dodać nowych członków do grupy, użyj polecenia cmdlet New-MgGroupMember. To polecenie dodaje członka do grupy Administratorzy usługi Intune, która została użyta w poprzednim przykładzie:
PS C:\Windows\system32> New-MgGroupMember -GroupId f76cbbb8-0581-4e01-a0d4-133d3ce9197f -DirectoryObjectId a88762b7-ce17-40e9-b417-0add1848eb68
Parametr -GroupId jest identyfikatorem grupy ObjectID. Musimy określić identyfikator ObjectID używanej grupy. -DirectoryObjectId jest identyfikatorem ObjectID użytkownika, który chcemy dodać jako członek grupy.
Pobieranie członków
Aby uzyskać istniejących członków grupy, użyj polecenia cmdlet Get-MgGroupMember, jak w tym przykładzie:
PS C:\Windows\system32> Get-MgGroupMember -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4
Id DeletedDateTime
-- ---------------
aaaaaaaa-bbbb-cccc-1111-222222222222
bbbbbbbb-cccc-dddd-2222-333333333333
Usuń członków
Aby usunąć członka wcześniej dodanego do grupy, użyj polecenia cmdlet Remove-MgGroupMember, jak pokazano tutaj:
PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4
Weryfikowanie członków
Aby sprawdzić członkostwo w grupach użytkownika, użyj polecenia cmdlet Select-MgGroupIdsUserIsMemberOf. To polecenie cmdlet przyjmuje jako parametry ObjectId użytkownika, dla którego należy sprawdzić członkostwo w grupach, oraz listę grup, dla których mają być sprawdzane członkostwa. Lista grup musi być podana w postaci zmiennej złożonej typu "Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck", dlatego najpierw musimy utworzyć zmienną o tym typie:
Get-MgUserMemberOf -UserId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Id DisplayName Description GroupTypes AccessType
-- ----------- ----------- ---------- ----------
5dc16449-3420-4ad5-9634-49cd04eceba0 demogroup demogroup {Unified}
Zwracana wartość to lista grup, których ten użytkownik jest członkiem. Można również zastosować tę metodę, aby sprawdzić członkostwo Kontaktów, Grup lub Podmiotów Usługi w danej liście grup, używając poleceń Select-MgGroupIdsContactIsMemberOf, Select-MgGroupIdsGroupIsMemberOf lub Select-MgGroupIdsServicePrincipalIsMemberOf.
Wyłączanie tworzenia grup przez użytkowników
Możesz uniemożliwić użytkownikom standardowym tworzenie grup zabezpieczeń. Domyślne zachowanie w usługach Microsoft Online Directory Services (MSODS) polega na umożliwieniu użytkownikom standardowym tworzenia grup, niezależnie od tego, czy jest włączone samoobsługowe zarządzanie grupami (SSGM). Ustawienie SSGM kontroluje zachowanie tylko w portalu Moje grupy.
Aby wyłączyć tworzenie grup dla użytkowników standardowych:
Sprawdź, czy użytkownicy standardowi mogą tworzyć grupy:
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
Jeśli zwraca
EnableGroupCreation : True
, użytkownicy standardowi mogą tworzyć grupy. Aby wyłączyć tę funkcję: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
Zarządzanie właścicielami grup
Aby dodać właścicieli do grupy, użyj polecenia cmdlet New-MgGroupOwner:
PS C:\Windows\system32> New-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867
Parametr -GroupId jest identyfikatorem ObjectID grupy, do której chcemy dodać właściciela. -DirectoryObjectId to identyfikator ObjectID użytkownika lub głównego elementu usługi, którego chcemy dodać jako właściciela.
Aby pobrać właścicieli grupy, użyj cmdletu Get-MgGroupOwner.
PS C:\Windows\system32> Get-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497
Polecenie cmdlet zwraca listę właścicieli (użytkowników i jednostek usługi) dla określonej grupy:
Id DeletedDateTime
-- ---------------
8ee754e0-743e-4231-ace4-c28d20cf2841
85b1df54-e5c0-4cfd-a20b-8bc1a2ca7865
4451b332-2294-4dcf-a214-6cc805016c50
Jeśli chcesz usunąć właściciela z grupy, użyj polecenia cmdlet Remove-MgGroupOwnerByRef:
PS C:\Windows\system32> Remove-MgGroupOwnerByRef -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867
Aliasy zarezerwowane
Podczas tworzenia grupy użytkownicy określają nazwę mailNickname lub alias używany przez system jako część adresu e-mail grupy. Tworzenie grup z dowolnym z wymienionych aliasów poczty e-mail o wysokim poziomie uprawnień jest ograniczone do administratorów globalnych firmy Microsoft Entra.
- nadużycie
- admin
- administrator
- hostmaster
- majordomus
- Administratort poczty
- korzeń
- bezpieczeństwo
- bezpieczeństwo
- ssl-admin
- webmaster
Zapisywanie zwrotne grup w środowisku lokalnym
Obecnie wiele grup jest nadal zarządzanych w lokalnej usłudze Active Directory. Aby odpowiedzieć na żądania synchronizacji grup w chmurze z powrotem do środowiska lokalnego, funkcja przesyłania zwrotnego grup dla Microsoft Entra ID przy użyciu synchronizacji z chmurą Microsoft Entra jest teraz dostępna.
Ważne
Wersja zapoznawcza dla publiczności funkcji Grupowego Zapisywania Zwrotnego w wersji 2 w usłudze Microsoft Entra Connect Sync nie będzie już dostępna po 30 czerwca 2024 r. Ta funkcja zostanie wycofana począwszy od tej daty i nie będzie już obsługiwana wConnect Sync, na potrzeby aprowizowania grup zabezpieczeń w chmurze w usłudze Active Directory. Funkcja będzie nadal działać poza datą wycofania; jednakże nie będzie już otrzymywać wsparcia po tej dacie i może przestać działać w dowolnym momencie bez powiadomienia.
Oferujemy podobną funkcjonalność w usłudze Microsoft Entra Cloud Sync o nazwie Provisioning grup do Active Directory, której można użyć zamiast funkcji Group Writeback v2 do aprowizacji grup zabezpieczeń w chmurze w usłudze Active Directory. Pracujemy nad ulepszeniem tej funkcji w usłudze Cloud Sync wraz z innymi nowymi funkcjami, które opracowujemy w Cloud Sync.
Klienci korzystający z tej funkcji w wersji zapoznawczej w Connect Sync powinni przełączyć konfigurację z Connect Sync na Cloud Sync. Możesz przenieść całą synchronizację hybrydową do Cloud Sync (jeśli obsługuje Twoje potrzeby). Możesz również uruchamiać Cloud Sync równolegle i przenosić wyłącznie aprowizację grup zabezpieczeń w chmurze do Active Directory do Cloud Sync.
W przypadku klientów, którzy aprowizują grupy Microsoft 365 do Active Directory, mogą oni nadal korzystać z funkcji zapisywania zwrotnego grup w wersji 1 w tym celu.
Możesz ocenić przejście wyłącznie na Cloud Sync przy użyciu kreatora synchronizacji użytkownika.
Następne kroki
Więcej dokumentacji PowerShell dla Microsoft Entra ID można znaleźć na stronie Microsoft Entra Cmdlets.