Aktuell aktiviert Microsoft Clipchamp als neues Produkt für folgende Lizenzen:
- Microsoft 365 E5
- Microsoft 365 E3
- Microsoft 365 Business Premium
- Microsoft 365 Business Standard
Mit Clipchamp können Mitarbeitende in OneDrive und SharePoint gespeicherte oder über Microsoft Stream abgespielte Videos bearbeiten.
Da Clipchamp für oben erwähnte Lizenzen in Aktivierung ist nutze ich es zur Simulation.
Ein Administrator kann per Code über Microsoft Graph die aktiven Servicepläne für ein Benutzerkonto überprüfen. Clipchamp ist nun ebenfalls ein Serviceplan.
Abhängig wie die Abfrage für ein Benutzerkonto erfolgt zeigt Microsoft Graph teils mehrere SharePoint Services.
Abfrage 1, über assignedPlans
Import-Module Microsoft.Graph.Authentication
Connect-Graph -Scopes User.Read.All
$Url = 'https://graph.microsoft.com/v1.0/users/<UserPrincipalName>?$select=id,userPrincipalName,displayName,assignedPlans'
$Result = Invoke-MgGraphRequest -Method GET -Uri $Url -ContentType "application/json"
$Result.assignedPlans.GetEnumerator() | ?{$_.service -eq "SharePoint" -and $_.capabilityStatus -eq "Enabled" }
Disconnect-Graph
Abhängig zur Lizenz liefert die API mehrere aktive SharePoint Services zurück.
Am Beispiel von M365 Business Premium.
- Bei ID c7699d2e-19aa-44de-8edf-1736da088ca1 handelt es sich um SharePoint Plan 1.
- Bei ID a1ace008-72f3-4ea0-8dac-33b3a23a2472 um Clipchamp.
- Bei ID e95bec33-7c88-4a70-8e19-b10bd9d0c014 um Office for the web.
Office for the web ist vom SharePoint Plan abhängig, Clipchamp ist nicht davon abhängig. In der Hilfe über Clipchamp wird die Serviceplan ID erwähnt.
The ServicePlanId for Clipchamp is a1ace008-72f3-4ea0-8dac-33b3a23a2472. The ServicePlanName is CLIPCHAMP.
Die Dokumentation über assignedPlans beschreibt das Property service. Es handelt sich um eine Angabe unter welchen Dienst das Produkt bei Microsoft fällt.
service: The name of the service; for example, exchange.
Für die korrekte Ausgabe des ServiceplanName sollte Abfrage 2 genutzt werden.
Abfrage 2, über licenseDetails
Import-Module Microsoft.Graph.Authentication
Connect-Graph -Scopes User.Read.All
$Url = 'https://graph.microsoft.com/v1.0/users/<UserPrincipalName>/licenseDetails'
$Result = Invoke-MgGraphRequest -Method GET -Uri $Url -ContentType "application/json"
$Result.value.servicePlans.GetEnumerator() | ?{($_.servicePlanName -eq "CLIPCHAMP" -or $_.servicePlanName -like "*SHAREPOINT*") -and $_.provisioningStatus -eq "Success" }
Disconnect-Graph
Der Unterschied gegenüber Abfrage 1 ist erkennbar. ServiceplanName wird für alle Pläne in normaler Form dargestellt.