Manuell zugewiesene Pläne (/Lizenzen) für alle User entfernen

Im letzten Beitrag ging es hierum:
Direkt zugewiesene Pläne (/Lizenzen) auslesen

Jetzt möchte ich euch zeigen, wie ihr diese Pläne recht einfach und vor allem SICHER von allen Usern weg bekommt. Achtung: Folgendes Skripte entfernt den ausgewählten Plan von ALLEN Usern, die diesen manuell erhalten haben.

Will man nur eine Lizenz von einem User entfernen, funktioniert das wie folgt:

Set-MsolUserLicense -UserPrincipalName joachim.armbruster@PowerShell24.de -RemoveLicenses tenantname:PLAN_NAME # i.e. powershell24:TEAMS_EXPLORATORY

Hier wird nur der genannte Plan entfern, die andern bleiben unberührt. Alternativ könnte man zeitgleich mit „-AddLicenses“ anderen Pläne hinzufügen. Diese würden zeitgleich verarbeitet werden, sodass der User beispielsweise bei einem Wechsel von E3 nach E5 nicht kurzzeitig ohne Lizenz da stünde.

Zurück zur Massenverarbeitung: Zunächst nehmen wir das Skript aus dem letzten Post und haben dadurch die Liste aller manuell Zuweisung.

Nun müssen wir uns entscheiden, welchen Plan wir entfernen wollen. Damit wir uns nicht vertippen, machen wir das am einfachsten wie folgt:

$SelectedPlan = $DirectAssignments.AccountSkuId | Select -Unique | Out-GridView -PassThru

Es erscheint ein Fenster, in welchem wir den entsprechenden Plan auswählen und mit „OK“ bestätigen.

Zuletzt nehmen wir unsere erste Liste mit allen Zuweisung, filtern nach dem ausgewählten Plan und gehen jeden dieser Einträge durch um den Plan zu entfernen:

$DirectAssignments | ? {$_.AccountSkuId -eq $SelectedPlan} | % {
	Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses $SelectedPlan
}

Im Nachgang kann dann gerne nochmal mit Hilfe des ersten Skripts geschaut werden ob auch alles funktioniert hat. In meinem Fall habe ich Teams Exploratory entfernt. Nach kurzer Zeit füllt sich diese jedoch wieder mit den Usern die nicht anderweitig an eine Teams Lizenz gekommen sind. „Aber das ist eine andere Geschichte und soll ein andermal erzählt werden.