Microsoft Teams mit PowerShell administrieren: Wie Sie Teams anlegen, ändern und Benutzer hinzufügen
Endanwender können die meisten Funktionen in Microsoft Teams selber verwalten. Dennoch bleiben eine Reihe von administrativen Aufgaben, die von der IT erledigt werden müssen. Wie in allen anderen Microsoft 365-Diensten steht dafür ein spezielles PowerShell-Modul zur Verfügung, mit dem Admins vielfältige Aufgaben durchführen und automatisieren können.
Der erste Schritt besteht wie bei allen externen Diensten und Anwendungen darin, das entsprechende PowerShell-Modul zu laden. Für Teams lautet der erforderliche Befehl dafür:
Install-Module -Name MicrosoftTeams
Für die Installation des Moduls muss man unter Umständen dem Update des NuGet-Providers zustimmen und bestätigen, dass man mit dem Download aus einer unsicheren Quelle einverstanden ist. Als solche gilt die PSGallery nämlich nach wie vor.
Gelegentlich kann dabei folgender Fehler auftreten:
Unable to resolve package source ‚https://powershellgallery.com/api/v2‘. Für die angegebenen Suchkriterien und den Paketnamen MicrosoftTeams wurde keine Übereinstimmung gefunden.
Der Grund dafür liegt meist darin, dass die PowerShell Gallery keine Verbindungen mit TLS 1.0 und 1.1 mehr akzeptiert. Einige Versionen von PowerShell nutzen diese aber noch per Voreinstellung. Das Problem konnte ich durch Setzen von Registry-Schlüsseln mit folgenden Befehlen lösen:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' ` -Name 'SchUseStrongCrypto' -Value '1' -Type DWord Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' ` -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
In diesem Fall muss man PowerShell einmal neu starten und den Befehl Install-Module nochmals ausführen.
Um den Erfolg der Installation zu verifizieren und sich einen Überblick über die verfügbaren Cmdlets zu verschaffen, kann man dieses Kommando absetzen:
Get-Command -Module MicrosoftTeams*
Aktuell enthält die Liste 32 Cmdlets.
Mit Teams verbinden
Wie bei PowerShell für Exchange und anderen Online-Diensten von Microsoft muss man sich mit Teams erst verbinden, bevor man es über Scripts verwalten kann. Dies erreicht man mit dem Befehl
Connect-MicrosoftTeams
Die Anmeldung am Tenant ist sowohl mit als auch ohne Multi-Factor-Authentifizierung (MFA) möglich.
Vorhandene Teams anzeigen
Mit dem Befehl
Get-Team | Format-List
kann man sich einen ersten Überblick über die bereits angelegten Teams verschaffen.
Teams anlegen und ändern
Mit dem Aufruf von New-Team nach dem Muster
New-Team -DisplayName MyTeam -Description "Ein neues Team" -Visibility Public
legt man ein neues Team an.
Wie im Teams-Client auch, kann man dem Cmdlet verschiedene Parameter mitgeben.
Wer die Einstellungen eines Teams nachträglich ändern möchte, kann dies mit
Set-Team
machen. Es unterstützt im Wesentlichen die gleichen Parameter wie New-Team, so dass man damit Eigenschaften eines Teams nachträglich anpassen oder ergänzen kann, wenn man sie beim Anlegen noch nicht konfiguriert hat.
In diesem Beispiel ändere ich einfach den Namen des Teams:
Set-Team -GroupId -DisplayName
Wie man unschwer erkennen kann, spricht man ein bestimmtes Team üben den Parameter GroupId an.
Mitglieder hinzufügen
Mitglieder lassen sich bereits beim Anlegen eines Teams mit New-Team hinzufügen oder nachträglich mit Add-TeamUser. Umgekehrt kann man sie mit Remove-TeamUser wieder entfernen.
Get-TeamUser zeigt anschließend alle User eines Teams an, wobei man Letzteres wieder über die GroupId spezifiziert.
Teams löschen
Wird es Team nicht mehr gebraucht und sollte daher gelöscht werden, dann erfüllt
Remove-Team
diesen Zweck.
Dieser Befehl bietet sich für Automatisierungen an, um zum Beispiel Teams zu entfernen, die keinen Besitzer oder keine Mitglieder mehr haben.
Kann ich denn auch die Azure Cloud Powershell nutzen? Die Verbindung Connect-MicrosoftTeam scheint da nicht unterstützt zu sein. Gibt es andere Wege?
Welche anderen Wege gibts sonst via MacOS?