Roster Containers und Planner Lightweight Plans

Mit Roster Containers und Lightweight Plans gibt es eine neue Möglichkeit einen Planner Plan anzulegen der im Hintergrund keine Microsoft 365 Gruppe erstellt. Ein Lightweight Plan ist eine abgespeckte Version von einem normalen Plan und kann später nicht zu einem normalen Plan konvertiert werden.

Benötigt heute jemand einen Planner Plan ist es immer erforderlich eine Microsoft 365 Gruppe anzulegen. Damit erstellt es neben dem Plan auch Dinge wie Mailbox, SharePoint Site, Kalender,… Mittlerweile ist es zumindest möglich in einer Gruppe mehrere Pläne anzulegen.
Im April wurden Roster Containers erstmalig vorgestellt und damals informiert ein neuer Lightweight Plan erstellt mit einem Roster Container keine M365 Gruppe. Wenig später wurden Roster Containers auf unbestimmte Zeit verschoben. Nun werden Roster Containers und Lightweight Plans gemeinsam aktiviert und sollen in den nächsten Wochen verfügbar sein.

Für die neuen Roster Container sind wichtige Punkte zu beachten:

  • Ein Roster Container ist ein leeres Objekt in Azure das nur über Microsoft Graph erstellbar ist. Es gibt kein grafisches UI. Die Planner Rosters API ist im Moment nur als Beta verfügbar.
  • Ein Lightweight Plan ist vom Roster Container abhängig und wird dem Container eingefügt. Wird innerhalb 24 Stunden kein Plan erstellt löscht das System einen leeren Roster Container.
  • Ein Roster Container kann jeweils nur einen Lightweight Plan inkludieren.
  • Wurde ein Plan im Roster Container erstellt können Mitglieder Inhalte in bekannter Art im Web bearbeiten. Im Plan selbst merken Mitglieder nur wenig über die andere Art von Plan. Es handelt sich jedoch um einen abgespeckten Planner Plan.
  • Mit der Erfahrung kann jeder Benutzer über PowerShell und Microsoft Graph einen Roster Container und Lightweight Plan erstellen.
  • Jedes Mitglied des Plans hat dieselben Berechtigungen. Es gibt keine Unterscheidung zwischen Besitzer und Mitglied.
  • Ein Roster Container muss mindestens ein Mitglied inkludieren. Verlässt das letzte Mitglied den Plan löscht das System nach 30 Tagen den Roster Container und alle Inhalte ohne weitere Info.
  • Einem Roster Container kann später keine Microsoft 365 Gruppe hinzugefügt werden.
  • Ein Administrator kann Roster Containers im Tenant deaktivieren.
  • Roster Containers und Lightweight Plans werden zukünftig für angekündigte Funktionen im M365 Tenant eingesetzt. Deaktiviert jemand Roster Containers stehen diese neuen Möglichkeiten ebenfalls nicht zur Verfügung.

Für die Erstellung von einem Lightweight Plan (also einem Planner Plan ohne Gruppe) sind zwei Schritte erforderlich:

Schritt 1:
Via PowerShell einen neuen Roster Container erstellen.

Schritt 2:
Via PowerShell dem Roster Container einen neuen Planner Plan hinzufügen.

In meinem Tenant wurden die Roster Containers mittlerweile freigeschalten. Ich erstellte mir zur Demo einen Lightweight Plan. Am Ende von diesem Beitrag sind die Commands zusammengefasst.

  1. Für die Erstellung über Graph benötigt es eine Azure App Registration mit den Rechten Tasks.ReadWrite. Wie so eine App Registration mit der Anmeldemöglichkeit via Client Secret oder Zertifikat erstellt wird beschreibe ich in diesem Beitrag.
  2. Nachdem die App Registration erstellt wurde ist ein Authentication Token für Delegated Permissions erforderlich. Ich erstellte dafür die Funktion Get-TAMSAuthToken.
$AuthHeader = Get-TAMSAuthToken -ClientSecret "[ClientSecretKey]" -Tenantname "[Tenantname]" -AppId "[AppID]" -API Graph -PermissionType Delegated -AppRedirectUri "http://localhost/myapp/" -ReturnAuthHeader
  1. Danach kann über die Create plannerRoster API ein Roster Container erstellt werden. Zur Erinnerung, es ist die Beta API. Sind Roster Containers in deinem Tenant noch nicht aktiv wird dir PowerShell eine entsprechende Mitteilung ausgeben.
$Body = @{ '@odata.type' = '#microsoft.graph.plannerRoster' }
$Url =  "https://graph.microsoft.com/beta/planner/rosters"
$RosterContainer = Invoke-RestMethod -Method POST -uri $Url -Headers $AuthHeader -Body $Body 
$RosterContainerID = $RosterContainer.id
  1. Es gibt die ID des neu erstellten Roster Containers zurück.
  1. Ein Benutzerkonto das den Container erstellt ist das erste Mitglied. Ich füge meine virtuelle Kollegin als weiteres Mitglied dem Container hinzu. Es ist ein optionaler Schritt. Weitere Mitglieder können später auch über Planner im Web ergänzt werden. Wie oben erwähnt hat jedes Mitglied bei Roster Containers dieselben Berechtigungen.
$Body = @"
{
  "@odata.type": "#microsoft.graph.plannerRosterMember",
  "userId": "[UserPrincipalName]"
}
"@

$Url = "https://graph.microsoft.com/beta/planner/rosters/$RosterContainerID/members"
$Result = Invoke-RestMethod -Method POST -uri $Url -Headers $AuthHeader -Body $Body -ContentType "application/json"
  1. Im nächsten Schritt muss in dem Roster Container innerhalb von 24 Stunden ein Planner Plan erstellt werden. Hier ist es komplizierter da Microsoft im Moment nicht beschreibt wie so ein Plan in Roster Containers erstellt wird. Der entsprechende Hinweis findet sich in der Graph Doku plannerPlanContainer. Dort wird erwähnt es gibt neu zwei Typen von Planner Containers: Group und Roster. Beide Typen erfordern unterschiedliche Urls zur Erstellung eines neuen Plans.
  1. Jetzt ist es noch wichtig zu wissen, für die Erstellung des Plans im Roster Container wird die normale Planner API Create plannerPlan eingesetzt.
  2. Über die Angaben aus Schritt 6 und 7 lässt sich ein Body und das Command bilden.
$Body = @"
{
  "container": {
    "url": "https://graph.microsoft.com/beta/planner/rosters/$RosterContainerID"
  },
  "title": "Roster Planner Plan"
}
"@

$Url = "https://graph.microsoft.com/beta/planner/plans"
$PlannerPlan = Invoke-RestMethod -Method POST -uri $Url -Headers $AuthHeader -Body $Body -ContentType "application/json" 
  1. Das Ergebnis ist der neue Lightweight Plan verknüpft mit dem Roster Container.

In Planner im Web wird es ein paar Minuten dauern bis der neue Plan sichtbar ist. Alternativ hat ein Lightweight Plan das folgende URL-Format:
https://tasks.office.com/[TenantUrl]/en-GB/Home/Planner/#/plantaskboard?groupId=[RosterContainerID]&planId=[PlannerPlanID]

Neuer Lightweight Plan in Planner im Web

Jemand der so einen Lightweight Plan einsetzt darf nicht vergessen, es ist ein Plan mit eingeschränkten Funktionen im Vergleich zu einem normalen (Gruppen) Plan. Kommentare in Tasks sind beispielsweise nicht möglich und jegliche Verknüpfung zu Exchange, SharePoint, Teams,… fehlt.


Share
Avatar-Foto

Tobias Asböck

Tobias ist ein Senior System Engineer mit rund 10 Jahren Berufserfahrung für Microsoft 365 Produkte wie SharePoint Online, OneDrive for Business, Teams Collaboration, Entra ID, Information Protection, Universal Print und Microsoft 365 Lizenzierung. Aus der Vergangenheit kennt er über einen Zeitraum von 15+ Jahren die Planung, Administration und den Betrieb von SharePoint Server Umgebungen. Tobias ist ein PowerShell Scripter mit Zertifizierungen für Microsoft 365 Produkte. In seiner Freizeit beschäftigt sich Tobias mit Aktualisierungen in der M365-Welt, ist mit seinem Rennvelo unterwegs und anderen sportlichen Aktivitäten beschäftigt.

Schreibe einen Kommentar

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