Microsoft 365 Planner – Administratorengruppe mit der PowerShell anlegen

Im Jahr 2017 schrieb ich hier auf meinem Blog einen Artikel, wie Ihr im Azure AD eine Gruppe erstellen könnt, deren Mitglieder berechtigt werden einen Planner-Plan zu erstellen. Die Administration erfolgte damals über das PowerShell Modul – MsolService. Seit einiger Zeit werde ich öfters angeschrieben, ob ich die Anleitung nicht noch einmal für die AzureADPreview PowerShell bereitstellen könnte. Dieser Bitte gehe ich gerne nach und möchte euch mit diesem Artikel zeigen, wie ihr die gleichen Schritte mit dem aktuellen PS-Modul AzureADPreview durchführen könnt.

Solltet Ihr auf eurem Rechner noch nicht das AzureADPreview Modul installiert haben, so führt bitte als erstes die folgenden Schritte aus. Öffnet als erstes die Windows PowerShell ISE als Administrator auf eurem Rechner. Gebt anschließend den folgenden Befehl ein:

Install-Module AzureADPreview

Hinweis: Solltet Ihr längere Zeit das Modul nicht verwendet haben, so kann es sinnvoll sein, das Modul mit dem Befehl Update-Modul AzureADPreview auf Updates zu prüfen.

Verbindet euch als nächstes mit eurem Microsoft 365 Tenant. Gebt hierzu den folgenden Befehl ein:

Connect-Module AzureAD

Gebt die Anmeldeinformationen eures Administrators ein. Als erstes lesen wir einmal die Konfiguration des Template „Group.Unified“ aus. In diesem Template werden die Grundkonfigurationen für die Gruppenverwaltungen geschrieben. Gebt hierzu den folgenden Befehl ein.

Get-AzureADDirectorySetting -All $True | where-object {$_.DisplayName -eq „Group.Unified“} | ForEach-Object Values

clip_image002

Wie Ihr erkennen könnt ist das Template nicht leer, sondern wurde damals in meinem alten Artikel mit dem alten Msol-Commands erstellt. Als erstes werde ich jetzt die alte Konfiguration löschen. Hierzu lade ich den oberen Befehl in eine Variable ($Einstellungen).

$Einstellungen = Get-AzureADDirectorySetting -All $True | where-object {$_.DisplayName -eq „Group.Unified“}

Anschließend könnt ihr mit dem folgenden Befehl das Template auf die Standardkonfiguration zurücksetzen.

Remove-AzureADDirectorySetting -Id $Einstellungen.Id

Als nächstes benötigen wir eine Security-Gruppe im Azure Active Directory. Hier sollten alle Mitglieder hinzugefügt werden, die zum Erstellen von Plänen berechtigt werden sollen. Sollten Ihr noch keine Gruppe angelegt haben, so könnt Ihr dies bequem über die PowerShell machen. Hierbei ist zu beachten, dass die folgenden Parameter angegeben werden.

New-AzureADGroup -DisplayName „AzurePlannerAmdin“ -Description „Kann wieder gelöscht werden“ -MailEnabled $false -MailNickName „NotSet“ -SecurityEnabled $true

Euch wird nun in der Ausgabe die ObjectID der Gruppe angezeigt. Diese ist wichtig, da wir diese für unser weiteres Vorhaben benötigen.

clip_image004

Hinweis: Solltet Ihr schon eine Gruppe über das Azure AD Portal angelegt haben, so könnt Ihr die ObjectID mit dem folgenden Befehl auslesen. Tragt anstatt „GrpPlannerAdmin“ den Namen eurer Gruppe ein! Merkt euch dann ebenfalls die ObjectID.

Get-AzureADGroup -All $true | Where-Object {$_.Displayname -eq „GrpPlannerAdmin“}

Als nächstes brauchen wir noch die ObjectID des Benutzers, den wir der Gruppe hinzufügen wollen. In meinem Fall ist das der User mit dem UserPrincipalName „wplum@blankertz.net“. Um die ObjectId auszulesen, gebt Ihr den folgenden Befehl ein:

Get-AzureAdUser -All $true | Where-Object {$_.UserPrincipalName -eq „wplum@blankertz.net“}

clip_image006

Der User wird uns wie in der Grafik dargestellt angezeigt. Fügen wir nun den User der entsprechenden Gruppe hinzu. Hierzu schreiben wir den gerade ausgeführten Befehl ebenfalls in eine Variabel mit dem Namen „$Benutzer“.

$Benutzer = Get-AzureAdUser -All $true | Where-Object {$_.UserPrincipalName -eq „wplum@blankertz.net“}

Nun können wir den User mit dem Befehl „Add-AzureAdGroup“ der angelegten Gruppe hinzufügen. Die Syntax setzt sich wie folgt zusammen. Gebt nach dem Befehl die ObjectID der Gruppe (z.B.: dec09aab-19a0-420c-a534-36e7a6a1eeaa) ein. Danach benötigen Sie den Parameter -RefObjectId. Hier geben Sie jetzt die entsprechende ObjectID des Users ein. Da wir mit dem oberen Befehl die Information als String in die Variable hinzugefügt haben, können wir jetzt hier relativ einfach die ID mit der Syntax $Benutzer.ObjectId auslesen. Hieraus ergibt sich folgender Befehl.

Add-AzureADGroupMember -ObjectId dec09aab-19a0-420c-a534-36e7a6a1eeaa -RefObjectId $Benutzer.ObjectId

clip_image008

Überprüfen wir als nächstes, ob der gewünschte Benutzer der Gruppe hinzugefügt wurde. Gebt hierzu den folgenden Befehl ein. Geben Sie als Parameter für die ObjectId die Id der Gruppe ein.

Get-AzureADGroupMember -ObjectID deb09aab-19c0-420c-a934-36e7a9a1ee1a

clip_image010

Nun können wir die angelegte Gruppe dem Template hinzufügen. Schauen wir uns als erstes einmal die einstellbaren Optionen in dem Template an. Lesen wir hierzu die Option des Template erneut in eine Variable $template ein.

$template = Get-AzureADDirectorySettingTemplate | where-object {$_.DisplayName -eq „Group.Unified“}

Damit wir die kompletten Einstellungen auslesen können, beben wir den Inhalt der Variable im -ft Format aus.

$Template.Values | fl

Die folgenden Informationen können von uns gesetzt werden:

  • EnableMIPLabels = Flag, das angibt, ob Microsoft Information Protection-Labels Unified Groups zugewiesen werden können.
  • CustomBlockedWordsList = Eine durch Kommas getrennte Liste blockierter Wörter für Unified Group displayName und mailNickName.
  • EnableMSStandardBlockedWords = Ein Flag, das angibt, ob die Microsoft Standard-Liste blockierter Wörter für Unified Group displayName und mailNickName aktiviert werden soll.
  • ClassificationDescriptions = Eine durch Kommas getrennte Liste strukturierter Zeichenfolgen, die die Klassifizierungswerte in der Klassifizierungsliste beschreiben. Die Struktur der Zeichenfolge lautet: Wert: Beschreibung
  • DefaultClassification = Der Klassifizierungswert, der standardmäßig für die Erstellung einer einheitlichen Gruppe verwendet wird.
  • PrefixSuffixNamingRequirement = Eine strukturierte Zeichenfolge, die beschreibt, wie ein Anzeigename und ein E-Mail-Name einer einheitlichen Gruppe strukturiert werden sollen. Informationen zum Strukturieren einer gültigen Anforderung finden Sie in den Dokumenten.
  • AllowGuestsToBeGroupOwner = Flag, das angibt, ob Gäste Eigentümer einer einheitlichen Gruppe sein dürfen.
  • AllowGuestsToAccessGroups = Flag, das angibt, ob Gäste auf Ressourcen einer einheitlichen Gruppe zugreifen dürfen.
  • GuestUsageGuidelinesUrl = Ein Link zu den Richtlinien zur Gruppennutzung für Gäste.
  • GroupCreationAllowedGroupId = Anleitung der Sicherheitsgruppe, die immer einheitliche Gruppen erstellen darf.
  • AllowToAddGuests = Flag, das angibt, ob Gäste in einer einheitlichen Gruppe zugelassen sind.
  • UsageGuidelinesUrl = Ein Link zu den Richtlinien zur Gruppennutzung.
  • ClassificationList = Eine durch Kommas getrennte Liste gültiger Klassifizierungswerte, die auf einheitliche Gruppen angewendet werden können.
  • EnableGroupCreation = Flag, das angibt, ob die Gruppenerstellungsfunktion aktiviert ist.

Als nächstes werden wir jetzt die gewünschten Werte eintragen. Damit wir die Werte setzten können, müssen wir das Template direkt adressieren können. Hierzu lese ich die konfigurierbaren Optionen des Template in die Variable $template ein.

$settings = $template.CreateDirectorySetting()

Damit wir unsere Gruppe als Sicherheitsgruppe hinterlegen können, gebt ihr bei der Option „GroupCreationAllowedGroupId“ die oben ausgelesene ObjectId der Gruppe an.

$settings[„EnableMIPLabels“] = „False“

$settings[„CustomBlockedWordsList“] = „Buchhaltung, Geschäftsführer,GF, Controlling, Borussia“

$settings[„EnableMSStandardBlockedWords“] = „[CountryOrRegion]_[GroupName]_[Department]“

$settings[„AllowGuestsToAccessGroups“] = „False“

 

$settings[„AllowGuestsToAccessGroups“] = „True“

 

$settings[„EnableMSStandardBlockedWords“] = „False“

 

$settings[„GroupCreationAllowedGroupId“] = „deb09aab-19c0-420c-a934-36e7a9a1ee1a“

 

$settings[„AllowToAddGuests“] = „true“

 

$settings[„UsageGuidelinesUrl“] = „https://blankertz-pm.de

 

$settings[„ClassificationList“] = „Low,Medium,High“

 

$settings[„EnableGroupCreation“] = „false“

Jetzt müssen wir nur noch die Werte speichern. Hierzu gebt ihr den folgenden Befehl ein:

New-AzureADDirectorySetting -DirectorySetting $settings

Kontrolliert, ob eure Einstellungen übernommen wurden. Gebt hierzu erneut den folgenden Befehl ein:

Get-AzureADDirectorySetting -All $True | where-object {$_.DisplayName -eq „Group.Unified“} | ForEach-Object Values

Wenn jetzt ein User versucht, einen Plan anzulegen, der nicht Mitglied der entsprechenden Gruppe ist, erhält er den Hinweis: „Ihr Administrator hat das Erstellen neuer Gruppen deaktiviert“. Mitglieder der Gruppe können hingegen normal eine Gruppe anlegen.

clip_image012

2 Kommentare

  • Wolfgang

    Leider wirkt das auch auf andere Dienste wie z.B: Teams, Sharepoint usw. aus und der User kann auch dort entsprechende „Gruppen“ anlegen.
    Also die Rechte die hier gesetzt werden, wirken sich nicht nur auf den Planner aus sondern global auf das Recht O365 Gruppen zu erstellen.

    • Torben Blankertz

      Hallo Wolfgang, dass ist korrekt! Sollten hier ein Konzept gewünscht sein, dann schau Dir mal bitte das Identity Governance im Azure AD an. Hier kannst Du kmoplette Freigabeszenarien erstellen. Hierzu kommt demnächst auch was auf meinem YouTube Channel!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulars wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.