Freigeben über


Microsoft Entra-Cmdlets Version 2 für die Gruppenverwaltung

Übersicht

Dieser Artikel enthält Beispiele für die Verwendung von PowerShell zur Verwaltung von Gruppen in Microsoft Entra ID (Teil von Microsoft Entra). Darüber hinaus erfahren Sie, wie das Microsoft Graph PowerShell-Modul eingerichtet wird. Zunächst müssen Sie das Microsoft Graph PowerShell-Modul herunterladen.

Installieren Sie das Microsoft Graph PowerShell-Modul

Verwenden Sie die folgenden Befehle, um das MgGroup PowerShell-Modul zu installieren:

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

Überprüfen Sie mithilfe des folgenden Befehls, ob das Modul verwendet werden kann:

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…

Sie können die Cmdlets jetzt im Modul verwenden. Eine vollständige Beschreibung der Cmdlets im Microsoft Graph-Modul finden Sie in der Onlinereferenzdokumentation für Microsoft Graph PowerShell.

Herstellen einer Verbindung mit dem Verzeichnis

Bevor Sie Gruppen mithilfe der Microsoft Graph PowerShell-Cmdlets verwalten können, müssen Sie Ihre PowerShell-Sitzung mit dem Verzeichnis verbinden, das verwaltet werden soll. Verwenden Sie den folgenden Befehl:

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

Das Cmdlet fordert Sie zur Eingabe der Anmeldeinformationen auf, die Sie für den Zugriff auf Ihr Verzeichnis verwenden möchten. In diesem Beispiel karen@drumkit.onmicrosoft.com wird für den Zugriff auf das Demoverzeichnis verwendet. Das Cmdlet gibt eine Bestätigung zurück, die angibt, dass die Sitzung mit Ihrem Verzeichnis verbunden wurde:

    Welcome To Microsoft Graph!

Sie können die MgGraph-Cmdlets nun zum Verwalten von Gruppen in Ihrem Verzeichnis verwenden.

Abrufen von Gruppen

Verwenden Sie das Get-MgGroup Cmdlet, um vorhandene Gruppen aus Ihrem Verzeichnis abzurufen.

Um alle Gruppen innerhalb des Verzeichnisses abzurufen, verwenden Sie das Cmdlet ohne Parameter:

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

Das Cmdlet gibt alle Gruppen innerhalb des verbundenen Verzeichnisses zurück.

Sie können den -GroupId Parameter verwenden, um eine bestimmte Gruppe abzurufen, für die Sie die Objekt-ID der Gruppe angeben:

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

Das Cmdlet gibt nun die Gruppe zurück, deren objectID-Wert mit dem eingegebenen Wert des Parameters übereinstimmt:

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

Sie können mithilfe des -Filter Parameters nach einer bestimmten Gruppe suchen. Dieser Parameter verwendet eine ODATA-Filterklausel und gibt alle Gruppen zurück, die dem Filter entsprechen. Beispiel:

    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

Hinweis

In den MgGroup PowerShell-Cmdlets ist der OData-Abfragestandard implementiert. Weitere Informationen finden Sie unter $filter im Artikel OData-Systemabfrageoptionen mit dem OData-Endpunkt.

Hier haben Sie ein Beispiel, das zeigt, wie Sie alle Gruppen abfragen, für die keine Ablaufrichtlinie angewendet wurde.

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

In diesem Beispiel wird dasselbe wie im vorherigen Beispiel ausgeführt, aber das Skript exportiert auch die Ergebnisse in 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

In diesem letzten Beispiel wird gezeigt, wie Sie nur Gruppen abrufen, die zu Teams gehören.

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

Erstellen von Gruppen

Verwenden Sie das New-MgGroup Cmdlet, um eine neue Gruppe in Ihrem Verzeichnis zu erstellen. Mit diesem Cmdlet wird eine neue Sicherheitsgruppe namens "DemoGroup" erstellt:

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

New-MgGroup @param

Aktualisieren von Gruppen

Verwenden Sie das Update-MgGroup Cmdlet, um eine vorhandene Gruppe zu aktualisieren. In diesem Beispiel wird die DisplayName-Eigenschaft der Gruppe "Intune-Administratoren" geändert. Suchen Sie zunächst die Gruppe mithilfe des Get-MgGroup Cmdlets und filtern Sie mithilfe des DisplayName-Attributs:

    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

Ändern Sie als Nächstes die Description-Eigenschaft in den neuen Wert "Intune-Geräteadministratoren":

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

Wenn Sie die Gruppe nun erneut finden, wird die Description-Eigenschaft aktualisiert, um den neuen Wert widerzuspiegeln:

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

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

Löschen von Gruppen

Verwenden Sie das Remove-MgGroup Cmdlet wie folgt, um Gruppen aus Ihrem Verzeichnis zu löschen:

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

Verwalten der Gruppenmitgliedschaft

Sie können Gruppenmitglieder hinzufügen, abrufen und entfernen und Mitgliedschaften überprüfen.

Hinzufügen von Mitgliedern

Verwenden Sie das New-MgGroupMember Cmdlet, um einer Gruppe neue Mitglieder hinzuzufügen. Mit diesem Befehl wird der im vorherigen Beispiel verwendeten Gruppe "Intune-Administratoren" ein Mitglied hinzugefügt:

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

Der -GroupId Parameter ist die ObjectID der Gruppe. Dies -DirectoryObjectId ist die ObjectID des Benutzers, der als Gruppenmitglied hinzugefügt werden soll.

Mitglieder erhalten

Um die vorhandenen Mitglieder einer Gruppe abzurufen, verwenden Sie das Get-MgGroupMember Cmdlet wie in diesem Beispiel:

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

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

Entfernen von Mitgliedern

Um das Mitglied zu entfernen, das zuvor der Gruppe hinzugefügt wurde, verwenden Sie das Remove-MgGroupMemberByRef Cmdlet, wie hier gezeigt:

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

Überprüfen von Mitgliedern

Verwenden Sie das Select-MgGroupIdsUserIsMemberOf Cmdlet, um die Gruppenmitgliedschaften eines Benutzers zu überprüfen. Dieses Cmdlet verwendet als Parameter die Objekt-ID des Benutzers, für den die Gruppenmitgliedschaften überprüft werden sollen, sowie eine Liste mit Gruppen, für die die Mitgliedschaften überprüft werden sollen. Die Liste der Gruppen muss in Form einer komplexen Variablen vom Typ "Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck" bereitgestellt werden, sodass Sie zunächst eine Variable mit diesem Typ erstellen müssen:

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

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

Der zurückgegebene Wert ist eine Liste mit Gruppen, in denen dieser Benutzer Mitglied ist. Sie können diese Methode auch anwenden, um die Mitgliedschaft von Kontakten, Gruppen oder Dienstprinzipale für eine bestimmte Liste von Gruppen zu überprüfen, mithilfe von Select-MgGroupIdsContactIsMemberOf, Select-MgGroupIdsGroupIsMemberOf oder Select-MgGroupIdsServicePrincipalIsMemberOf.

Deaktivieren der Gruppenerstellung durch Benutzer

Sie können verhindern, dass Standardbenutzer Sicherheitsgruppen erstellen. Das Standardverhalten in Microsoft Online Directory Services (MSODS) besteht darin, Standardbenutzern das Erstellen von Gruppen zu ermöglichen, unabhängig davon, ob die Self-Service-Gruppenverwaltung (Self-Service Group Management, SSGM) ebenfalls aktiviert ist. Die SSGM-Einstellung kontrolliert das Verhalten nur im Portal „Meine Gruppen“.

So deaktivieren Sie die Gruppenerstellung für Standardbenutzer:

  1. Überprüfen Sie, ob Standardbenutzer Gruppen erstellen dürfen:

    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. Wenn sie EnableGroupCreation : Truezurückgibt, können Standardbenutzer Gruppen erstellen. So deaktivieren Sie das Feature:

     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
    
    

Gruppenbesitzer verwalten

Verwenden Sie zum Hinzufügen von Besitzern zu einer Gruppe das New-MgGroupOwner Cmdlet:

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

Der -GroupId Parameter ist die ObjectID der Gruppe, der Sie einen Besitzer hinzufügen möchten. Dies -DirectoryObjectId ist die ObjectID des Benutzers oder Dienstprinzipals, der als Besitzer hinzugefügt werden soll.

Verwenden Sie das Get-MgGroupOwner Cmdlet, um die Besitzer einer Gruppe abzurufen:

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

Das Cmdlet gibt die Liste der Besitzer (Benutzer und Dienstprinzipale) für die angegebene Gruppe zurück:

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

Wenn Sie einen Besitzer aus einer Gruppe entfernen möchten, verwenden Sie das Remove-MgGroupOwnerByRef Cmdlet:

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

Reservierte Aliase

Wenn Sie eine Gruppe erstellen, geben Benutzer einen mailNickname oder Alias an, den das System als Teil der E-Mail-Adresse der Gruppe verwendet. Die Erstellung von Gruppen mit einem der hoch privilegierten E-Mail-Aliasnamen, die aufgelistet sind, ist auf Microsoft Entra-Globaladministratoren beschränkt. 

  • Missbrauch
  • admin
  • Administrator
  • hostmaster
  • Majordomo
  • postmaster
  • root
  • sichern
  • Sicherheit
  • ssl-admin
  • webmaster

Rückschreiben von Gruppen in das lokale Active Directory

Heutzutage werden viele Gruppen immer noch im lokalen Active Directory verwaltet. Als Reaktion auf Anforderungen, Cloudgruppen zurück mit der lokalen Instanz zu synchronisieren, ist das Gruppenrückschreiben für Microsoft Entra ID mit der Microsoft Entra-Cloudsynchronisierung jetzt verfügbar.

Wichtig

Die Vorschau von Group Writeback v2 in Microsoft Entra Connect Sync ist veraltet und wird nicht mehr unterstützt.

Sie können Microsoft Entra Cloud Sync verwenden, um Cloudsicherheitsgruppen für lokale Active Directory Domain Services (AD DS) bereitzustellen.

Wenn Sie Group Writeback v2 in Microsoft Entra Connect Sync verwenden, sollten Sie Ihren Synchronisierungsclient in Microsoft Entra Cloud Sync verschieben. Um zu überprüfen, ob Sie berechtigt sind, zu Microsoft Entra Cloud Sync zu wechseln, verwenden Sie den Benutzersynchronisierungs-Assistenten.

Wenn Sie Microsoft Cloud Sync nicht wie empfohlen vom Assistenten verwenden können, können Sie Microsoft Entra Cloud Sync parallel mit Microsoft Entra Connect Sync ausführen. In diesem Fall können Sie Microsoft Entra Cloud Sync nur ausführen, um Cloudsicherheitsgruppen für lokale AD DS bereitzustellen.

Wenn Sie Microsoft 365-Gruppen für AD DS bereitstellen, können Sie "Group Writeback v1" weiterhin verwenden.

Nächste Schritte

Weitere Microsoft Entra ID PowerShell-Dokumentation finden Sie unter Microsoft Entra Cmdlets.