Die Gruppenverwaltung in Microsoft 365 ist eine zentrale Aufgabe für Administratoren – insbesondere, wenn es um die Steuerung von Zugriffsrechten, die Lizenzvergabe oder das Benutzer- und Gerätemanagement geht. Mit der Ablösung der bisherigen PowerShell-Module AzureAD, AzureADPreview und MSOnline durch Microsoft Graph PowerShell ist ein Paradigmenwechsel verbunden. Die Microsoft Graph PowerShell basiert auf der Graph API und erlaubt über ein einheitliches Befehlsmodell den Zugriff auf nahezu alle relevanten Microsoft-365-Dienste, von Entra ID über Exchange bis hin zu Intune und Teams. Auch Gruppen lassen sich damit verwalten. Der folgende Artikel zeigt, wie das geht und welche Alternativen es dazu gibt.
Index
Einrichtung der Microsoft Graph PowerShell
Die Installation der Microsoft Graph PowerShell erfolgt direkt in der PowerShell oder im Windows-Terminal über die PowerShell Gallery:
|
1 |
Install-Module Microsoft.Graph -Scope CurrentUser -Force |
Dieser Befehl installiert das gesamte Microsoft Graph SDK-Modul für den aktuellen Benutzer. Mit -Force wird sichergestellt, dass eventuelle Rückfragen unterdrückt werden.
Nach erfolgreicher Installation erfolgt die Authentifizierung:
|
1 2 3 4 5 |
Set-ExecutionPolicy RemoteSigned Import-Module Microsoft.Graph.Authentication Connect-MgGraph -Scopes "Group.ReadWrite.All", "User.Read.All" |
Dieser Befehl öffnet ein Anmeldefenster und authentifiziert die Sitzung mit den genannten Rechten. Group.ReadWrite.All erlaubt das Erstellen, Bearbeiten und Löschen von Gruppen. User.Read.All ermöglicht das Auslesen von Benutzerdaten. Die Berechtigungen gelten nur für die aktuelle PowerShell-Sitzung.
Sitzungsberechtigungen anzeigen:
|
1 |
(Get-MgContext).Scopes |
Der Befehl zeigt, welche Berechtigungen aktuell wirksam sind. Administratoren können über das Entra Admin Center (ehemals Azure AD Portal) unter „Enterprise Applications“ (Unternehmensanwendungen) → „Microsoft Graph Command Line Tools“ die konsentierten Berechtigungen einsehen und verwalten.
Erweiterung der Berechtigungen zur Laufzeit:
|
1 |
Connect-MgGraph -Scopes "User.ReadWrite.All" |
Der Befehl erweitert eine bestehende Verbindung um zusätzliche Berechtigungen. Das ist erforderlich, wenn nachträglich Schreibrechte notwendig werden, zum Beispiel für Benutzeränderungen.
Erstellen von Gruppen in der Microsoft Graph-PowerShell
Dieses Beispiel erstellt eine Microsoft 365 Gruppe mit Mailfunktion und Sicherheitsmerkmalen. Der Parameter groupTypes = "Unified" macht sie kompatibel mit Teams, Outlook und Planner.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$params = @{ displayName = "Projektteam Nord" description = "Gruppe für Projekte in Region Nord" mailNickname = "projteamnord" mailEnabled = $true securityEnabled = $true groupTypes = @("Unified") } New-MgGroup -BodyParameter $params |
Gruppen lassen sich auch direkt über eine grafische Oberfläche im IDM-Portal 5.1 erstellen, bearbeiten und verwalten, inklusive der Mitglieder. Das ist besonders für Administratoren hilfreich, die nicht ausschließlich mit PowerShell arbeiten.
Erstellen einer dynamischen Gruppe:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$params = @{ displayName = "Forschung" mailEnabled = $false securityEnabled = $true mailNickname = "forschung" groupTypes = @("DynamicMembership") membershipRule = '(user.department -eq "Forschung")' membershipRuleProcessingState = "on" } New-MgGroup -BodyParameter $params |
Diese Gruppe basiert auf einer dynamischen Mitgliedschaftsregel. Benutzer mit dem Attribut department = Forschung werden automatisch hinzugefügt.
Mitglieder zu Gruppen hinzufügen
In der PowerShell lassen sich zu bestehenden Gruppen neue Benutzer hinzufügen:
|
1 |
New-MgGroupMember -GroupId "<Gruppen-ID>" -DirectoryObjectId "<Benutzer-ID>" |
Dieser Befehl fügt einen Benutzer anhand seiner Objekt-ID einer Gruppe hinzu. Die Gruppen-ID erhält man mit Get-MgGroup, die Benutzer-ID mit Get-MgUser.
Mehrere Mitglieder aus CSV hinzufügen:
|
1 2 3 4 5 |
Import-Csv "C:\mitglieder.csv" | ForEach-Object { New-MgGroupMember -GroupId "<Gruppen-ID>" -DirectoryObjectId $_.UserID } |
Der Befehl importiert eine CSV-Datei mit Benutzer-IDs und fügt alle Benutzer in der CSV-Datei dieser Gruppe hinzu. Das Cmdlet Get-MgGroup wird verwendet, um Informationen über Gruppen in Microsoft Entra ID abzurufen. Es kann genutzt werden, um alle Gruppen aufzulisten oder gezielt einzelne Gruppen anhand ihrer Eigenschaften zu filtern. Hilfreich ist die Möglichkeit, den Parameter -Filter zu verwenden, um nur Gruppen mit bestimmten Merkmalen auszuwählen.
Get-MgUser hingegen dient dazu, Benutzerinformationen aus Entra ID abzurufen, etwa den Anzeigenamen, die UPN (User Principal Name) oder die ID eines Nutzers. Beide Befehle sind notwendig, um Objekt-IDs zu ermitteln, die für weiterführende Operationen wie Gruppenmitgliedschaften oder Lizenzzuweisungen notwendig sind.
Beispiel: Alle Gruppen im Tenant anzeigen
|
1 |
Get-MgGroup -All |
Dieser Befehl ruft alle Gruppen im verbundenen Mandanten ab. Ohne den Parameter -All würde nur die erste Seite der Ergebnisse zurückgegeben.
Beispiel: Nur Gruppen mit dem Namen „Marketing“ anzeigen
|
1 |
Get-MgGroup -Filter "DisplayName eq 'Marketing'" |
Hier wird per OData-Filter eine gezielte Abfrage durchgeführt, die nur Gruppen mit exakt passendem Anzeigenamen liefert.
Beispiel: Einen bestimmten Benutzer anhand seiner UPN finden
|
1 |
Get-MgUser -UserId "max.muster@firma.de" |
Damit werden die vollständigen Benutzerdaten des angegebenen Nutzers abgerufen.
Beispiel: Alle Benutzer mit dem Vornamen „Max“ anzeigen
|
1 |
Get-MgUser -Filter "startsWith(GivenName,'Max')" |
Dieser Befehl zeigt alle Benutzer, deren Vorname mit „Max“ beginnt. Der Einsatz von startsWith ist ideal für dynamische Suchen.
Mitglieder mit der PowerShell aus Gruppen entfernen
In der PowerShell lassen sich auch Gruppen aus vorhandenen Gruppen entfernen:
|
1 |
Remove-MgGroupMemberByRef -GroupId "<Gruppen-ID>" -DirectoryObjectId "<Benutzer-ID>" |
Natürlich ist es auch hier möglich mehrere Benutzer auf einmal aus Gruppen zu entfernen:
|
1 2 3 4 5 |
Import-Csv "C:\gruppen.csv" | ForEach-Object { Remove-MgGroupMemberByRef -GroupId $_.GroupObjectID -DirectoryObjectId "<UserID>" } |
Der Befehl verwendet eine Liste von Gruppen-IDs aus einer CSV-Datei, um einen Benutzer aus mehreren Gruppen gleichzeitig zu entfernen.
Mit IDM-Portal 5.1 lassen sich Mitglieder auch per Drag & Drop hinzufügen oder entfernen. Änderungen werden direkt in Entra ID gespeichert. Dies bietet eine intuitive Möglichkeit für Helpdesk- oder Abteilungsadministratoren, ohne mit PowerShell arbeiten zu müssen.
Besitzer von Gruppen in der PowerShell im Griff behalten
Der Besitzer hat besondere Rechte für eine Gruppe. In der PowerShell ist es auch möglich den Besitzer zu steuern:
|
1 2 3 |
New-MgGroupOwner -GroupId "<Gruppen-ID>" -DirectoryObjectId "<Benutzer-ID>" Get-MgGroupOwner -GroupId "<Gruppen-ID>" |
Um die EIgenschaften einer Gruppe anzupassen, kann man zum Beispiel folgenden Befehl verwenden:
|
1 2 3 |
$params = @{ description = "Aktualisierte Beschreibung" } Update-MgGroup -GroupId "<Gruppen-ID>" -BodyParameter $params |
Der Befehl aktualisiert bestimmte Felder einer Gruppe wie Beschreibung oder Anzeigename.
Lizenzvergabe an Gruppen mit Microsoft Graph PowerShell
Die gruppenbasierte Lizenzzuweisung in Microsoft 365 ermöglicht es Administratoren, Lizenzen zentral in einer Gruppe zuzuweisen. Sobald ein Benutzer Mitglied dieser Gruppe ist, erhält er automatisch die zugewiesene Lizenz. Dadurch lässt sich der Verwaltungsaufwand deutlich verringern und eine konsistente Lizenzverteilung sicherstellen, besonders in dynamischen Umgebungen oder bei rollenbasierten Konzepten. Um eine Lizenz zuweisen zu können, müssen zunächst die verfügbaren Lizenzprodukte im Mandanten ermittelt werden. Dies geschieht mit folgendem Befehl:
|
1 |
Get-MgSubscribedSku -All |
Dieser Befehl gibt eine Liste aller im Tenant vorhandenen Lizenz-SKUs zurück. Für jede Lizenz wird eine eindeutige Kennung, die sogenannte SkuId, ausgegeben. Diese ist notwendig, um einer Gruppe eine Lizenz zuzuweisen. Sobald die gewünschte SkuId bekannt ist, kann die Lizenz wie folgt einer Gruppe zugewiesen werden:
|
1 |
Set-MgGroupLicense -GroupId "<Gruppen-ID>" -AddLicenses @{SkuId = "<SkuId>"} -RemoveLicenses @() |
Der Parameter GroupId steht für die Objekt-ID der Zielgruppe. Unter AddLicenses wird die SkuId angegeben, die hinzugefügt werden soll. Über RemoveLicenses können gleichzeitig nicht mehr benötigte Lizenzen entfernt werden. Im obigen Beispiel bleibt dieser Parameter leer, es wird nur eine Lizenz hinzugefügt.
Praxisbeispiel:
Ein Unternehmen möchte allen Mitarbeitern der Gruppe „Vertrieb“ automatisch eine Microsoft 365 Business Standard Lizenz bereitstellen. Die Gruppe wurde zuvor mit New-MgGroup erstellt. Nach Ermittlung der passenden SkuId kann die Lizenz mit folgendem Befehl der Gruppe zugeordnet werden:
|
1 |
Set-MgGroupLicense -GroupId "a1b2c3d4-5678-9876-5432-a1b2c3d4e5f6" -AddLicenses @{SkuId = "c42b9cae-ea4f-4ab7-9717-81576235ccac"} -RemoveLicenses @() |
Ab diesem Zeitpunkt erhalten alle Mitglieder dieser Gruppe die Lizenz automatisch zugewiesen. Die Verwaltung erfolgt dadurch wesentlich effizienter, insbesondere bei wechselnden Teamstrukturen. Zur Kontrolle, welche Lizenzen einer Gruppe aktuell zugewiesen sind, dient folgender Befehl:
|
1 |
Get-MgGroup -GroupId "<Gruppen-ID>" | Select-Object -ExpandProperty AssignedLicenses |
Mit dieser Methode lassen sich Lizenzzuweisungen gezielt nachvollziehen und bei Bedarf auch rückgängig machen. Die gruppenbasierte Lizenzvergabe lässt sich hervorragend mit automatisierten Gruppenmitgliedschaften kombinieren und so in eine vollautomatisierte Benutzer- und Lizenzverwaltung integrieren.
Erweiterte Filterung und Analyse von Gruppenstrukturen in Microsoft 365
Mit Microsoft Graph PowerShell stehen leistungsfähige Abfragemöglichkeiten zur Verfügung, um gezielt Gruppeninformationen im Microsoft-365-Tenant auszuwerten. Ein häufiger Anwendungsfall ist die Abfrage aller Gruppen, bei denen kein Ablaufdatum definiert ist. Dies kann hilfreich sein, um potenzielle Altgruppen zu identifizieren, die nicht durch automatische Ablaufmechanismen reguliert werden:
|
1 |
Get-MgGroup -ConsistencyLevel eventual -Filter "NOT (expirationDateTime ge 1900-01-01T00:00:00Z)" |
Der Parameter ConsistencyLevel eventual ist notwendig, um serverseitige Filter- und Zählfunktionen nutzen zu können. Die Abfrage liefert alle Gruppen, bei denen kein Ablaufdatum gesetzt ist, was etwa bei dauerhaft aktiven Sicherheitsgruppen oder veralteten Projektgruppen relevant sein kann.
Ebenso lassen sich spezifische Gruppentypen filtern, etwa Microsoft Teams Gruppen. Diese lassen sich daran erkennen, dass in ihren Metadaten der Eintrag resourceProvisioningOptions mit dem Wert Team enthalten ist:
|
1 |
Get-MgGroup -Filter "resourceProvisioningOptions/any(p:p eq 'Team')" |
Mit dieser Afrage werden nur jene Gruppen zurückgegeben, die als Microsoft Teams Arbeitsbereiche angelegt wurden. Dies ist nützlich, wenn eine Übersicht über alle aktiven Teams in einer Organisation erstellt oder bereinigt werden soll. Um die Gruppenzugehörigkeiten eines bestimmten Benutzers zu ermitteln, kann das folgende Cmdlet verwendet werden:
|
1 |
Get-MgUserMemberOf -UserId "<Benutzer-ID>" |
Damit lassen sich alle Gruppen anzeigen, in denen der Benutzer aktuell Mitglied ist. Das kann Sicherheitsgruppen, Microsoft 365 Gruppen, Verteilerlisten oder auch dynamische Gruppen umfassen.
Für Administratoren, die bevorzugt über eine grafische Oberfläche arbeiten, bietet das IDM-Portal ab Version 5.1 eine vollständige Integration des Entra ID Gruppenmanagements. Es zeigt nicht nur alle Cloud-Gruppen, sondern auch aus dem Active Directory synchronisierte Gruppen (im lesenden Modus). In der Benutzeransicht sind die Gruppenmitgliedschaften eines Nutzers sichtbar und lassen sich direkt bearbeiten. Die Zuordnung erfolgt bequem über eine Drag-and-Drop-Oberfläche.
Darüber hinaus erlaubt das IDM-Portal die strukturierte Darstellung aller Gruppenmitgliedschaften auf einen Blick und unterstützt durch Logging-Funktionen die Nachvollziehbarkeit von Änderungen. Die gezielte Analyse von Gruppenstrukturen wird dadurch erheblich vereinfacht, was in komplexen hybriden Umgebungen mit gemischtem Cloud- und On-Prem-Betrieb einen deutlichen Vorteil darstellt.
Berechtigungen für Cmdlets gezielt analysieren und verwalten
Ein zentrales Element bei der Arbeit mit Microsoft Graph PowerShell ist das Verständnis der Berechtigungen, die für bestimmte Cmdlets erforderlich sind. Microsoft Graph basiert auf einem fein granularen Berechtigungsmodell, das auf sogenannten Scopes beruht. Diese müssen bei der Authentifizierung mitgegeben werden und bestimmen, was innerhalb einer PowerShell-Sitzung erlaubt ist. Um herauszufinden, welche Berechtigungen ein konkretes Cmdlet benötigt, kann der folgende Befehl verwendet werden:
|
1 |
Find-MgGraphCommand -Command Get-MgUser | Find-MgGraphPermission |
Dieser Befehl analysiert das Cmdlet Get-MgUser und gibt eine Liste aller Berechtigungen zurück, die erforderlich oder optional sind. Die Ausgabe enthält sowohl delegierte Berechtigungen (die im Namen des aktuell angemeldeten Benutzers gelten) als auch anwendungsbezogene Berechtigungen (für App-only-Zugriffe über registrierte Anwendungen). In der Praxis hilft das, bereits vor dem Ausführen eines Cmdlets die notwendigen Rechte zu identifizieren und gezielt den passenden Scope anzugeben.
Beispiel: Prüfung der Rechte für Gruppenbearbeitung
Wer plant, Gruppen zu bearbeiten, sollte vorab prüfen, ob das Cmdlet Update-MgGroup zusätzliche Rechte benötigt. Der Befehl zur Abfrage lautet:
|
1 |
Find-MgGraphCommand -Command Update-MgGroup | Find-MgGraphPermission |
Die Ausgabe zeigt dann, dass unter anderem Group.ReadWrite.All erforderlich ist. Diese Information ist wichtig, da ohne diesen Scope der Befehl zwar korrekt formuliert sein kann, aber aufgrund fehlender Berechtigung fehlschlägt.
Rechte bewusst und sicher vergeben
Die Kenntnis der benötigten Scopes ist auch aus Sicherheitsgründen relevant. Anstatt pauschal alle Rechte zu gewähren, lässt sich mit dieser Methode exakt definieren, welche Berechtigungen eine Session benötigt. Das reduziert die Angriffsfläche und entspricht dem Prinzip des geringsten Privilegs. Die tatsächlichen Berechtigungen und deren Umfang lassen sich über das Microsoft Entra Admin Center (früher Azure AD Portal) grafisch kontrollieren. Unter „Enterprise Applications“ kann die Anwendung „Microsoft Graph PowerShell“ geöffnet werden. Im Bereich „Berechtigungen“ werden sowohl erteilte Admin Consents als auch User Consents angezeigt. Darüber hinaus lässt sich einsehen, welche Benutzer der Verwendung einzelner Scopes zugestimmt haben. Über die Schaltfläche „Total Users“ kann die Übersicht der betroffenen Konten abgerufen werden. Administratoren haben dort auch die Möglichkeit, bestehende Consents gezielt zu widerrufen. Die Kombination aus PowerShell-Kommandos und transparenter Rechteverwaltung über das Microsoft Entra Admin Center schafft eine belastbare Grundlage für eine kontrollierte und revisionssichere Nutzung von Microsoft Graph PowerShell.
Überblick zur Gruppenverwaltung im IDM-Portal
Mit dem IDM-Portal ab Version 5.1 steht Administratoren eine vollständig integrierte Oberfläche zur Verfügung, um Entra ID Gruppen im direkten Zugriff zu verwalten. Neben der klassischen Anzeige und Bearbeitung von Gruppenmitgliedern bietet das Portal eine anwenderfreundliche Struktur, die tief mit der Microsoft-365-Umgebung verzahnt ist. Besonders hervorzuheben ist die Möglichkeit, sowohl cloudbasierte als auch synchronisierte AD-Gruppen in einer konsistenten Ansicht darzustellen. Die zugrunde liegende Verbindung über den my-IAM RealGroup Business Service stellt sicher, dass alle Änderungen in Echtzeit in Entra ID übernommen werden.

Ein weiterer praktischer Vorteil liegt in der administrativen Kontrolle: Gruppen lassen sich nicht nur zentral verwalten, sondern auch direkt im Benutzerkontext pflegen. So können Mitgliedschaften pro Benutzer einzeln eingesehen und angepasst werden. Neben der Drag-and-Drop-Funktion im Mitglieder-Tab trägt auch die überarbeitete Oberfläche zur besseren Übersicht bei. Die Einführung des Trace-Logging erleichtert zusätzlich die Fehlersuche, indem automatisch technische Details zu Aktionen dokumentiert werden. Für komplexe Umgebungen mit hybrider Infrastruktur stellt das IDM-Portal damit eine effektive Brücke dar, die Transparenz und Bedienkomfort kombiniert.

Unterstützung benötigt?
Gerne stellen wir Ihnen unsere Leistungen und Lösungen in einem persönlichen Gespräch vor.
Wir freuen uns über Ihre Kontaktaufnahme!












Leave a Reply
Danke für Ihre Anregungen, Fragen und Hinweise. Unsere Datenschutzerklärung finden Sie hier: https://www.active-directory-faq.de/datenschutzerklaerung/