Zuletzt haben wir einen Einblick in die Möglichkeiten der MS Graph API bekommen, die aber nicht nur über PowerAutomate oder den Graph Explorer angesprochen werden kann, sondern über die überaus mächtige Scripting-Sprache PowerShell.
Vielleicht kennen Sie PowerShell "noch von früher" oder rein aus dem Kontext von Windows Server oder Ihres Windows OS. Doch seit 2006 ist viel passiert, und so hat sich PowerShell als wichtige Kommunikationssprache für Microsoft365 entwickelt.
Wo kann ich PowerShell ausprobieren?
Hier werden Sie schnell fündig: Windows ⊞-Taste drücken und PowerShell eingeben:
Bild 1: Starten von Microsoft PowerShell
Wenn Sie sich direkt für "Windows PowerShell (App)" entscheiden, können Sie sich in einer klassischen Eingabeaufforderungsumgebung (vgl. cmd, bash) mit Befehlen, in PowerShell genannt "cmdlets" (sprich "commandlets"), entlanghanteln – siehe Bild 2. Für erste Schritte im Scripting, also die sequentielle Aneinanderreihung von cmdlets, eignet sich hingegen "Windows PowerShell ISE" gut, da Sie dort cmdlets und Befehle gesammelt listen (3.1) und dann als Scriptblock ausführen können (3.2). Dieser Editor verrät Ihnen auch schon die Extension, wenn Sie das Script für die Zukunft abspeichern wollen, nämlich ".ps1" (3.3.)
Bild 2: Windows PowerShell (App)
Bild 3: Windows PowerShell ISE
Sobald Sie mehr Erfahrung gesammelt haben und öfter mit PowerShell arbeiten, empfiehlt sich übrigens eine integrierte Entwicklungsumgebung (IDE), wie in meinem Fall Visual Studio Code (Bild 4).
Bild 4: Ein PowerShell-Script in Visual Studio Code
Was hat das alles mit M365 und Teams zu tun?
Es gibt verschiedene Sets an cmdlets, die auf M365-Ressourcen zugreifen können. Dafür braucht es erweiterte Rechte, einerseits um ggf. die Execution Policy in der ausführenden Umgebung anzupassen (siehe z.B. diese Microsoft Dokumentation) und andererseits, um die benötigten Module (z.B. "Microsoft Teams PowerShell Module") in der Umgebung zu installieren (Windows PowerShell => Rechtsklick => "Als Administrator ausführen"). Die Umgebung kann hierbei Ihr lokaler Rechner, aber z.B. auch eine virtuelle Umgebung (z.B. in Azure) sein. Wenden Sie sich hierbei am besten an Ihre IT-Administration.
Wurde das Modul erfolgreich installiert, lässt sich nun die Verbindung zur Teams Komponente über den Befehl "Connect-MicrosoftTeams" herstellen – dazu öffnet sich ein Fenster zur Eingabe Ihrer Benutzercredentials.
Je nachdem, welche Rechte Ihr User im Zielsystem hat, sind nur verschiedene Operationen möglich. So können Sie nun z.B. programmatisch das Hinzufügen und Entfernen von Usern in bestimmten Teams steuern, dies als bulk operation in ein Script einbauen, u.v.m. (Bild 5):
Bild 5: Ein einfaches Beispiel: Ein Gastuser wird über das cmdlet "Add-TeamUser" zu einem bestimmten Team hinzugefügt (die "GroupID" ist hierbei die ID des Teams, eigentlich eine M365-Gruppe); kurze Zeit später können Sie den User im Team sehen.
Alles ist möglich
Doch das ist natürlich nur der Anfang, denn das PowerShell-Modul "Microsoft Teams" bietet eine Vielzahl an weiteren spannenden cmdlets, z.B. Add-TeamChannelUser, Get-CsUserPolicyPackage, Get-Team u.v.m. Die vollständige Liste finden Sie hier.
Und sollte das dennoch nicht reichen, entfaltet sich das wahre Potential durch das Verknüpfen verschiedener M365-Module, wie z.B. Azure Active Directory, Exchange Online etc.
Besonders schön: PowerShell-Scripte lassen sich z.B. automatisch in der Cloud ausführen oder mit PowerAutomate verknüpfen – sie schaffen also unglaublich mächtige und flexible Möglichkeiten, Ihre Microsoft365 Subscription voll und ganz auszunützen.