Teams PowerShell

Wie so oft können Sie einige Einstellungen per Browser im Admin-Portal vornehmen. Aber alle Einstellungen erreichen Sie nur per PowerShell und für Automatisierungsaufgaben wie Provisioning und Auswertung ist PowerShell die erste Anlaufstation. Es gibt aber auch noch Graph und andere APIs. Hier ist PowerShell das Thema.

Eine oder mehrere PowerShell Module ?

Ein Exchange Admin hat es etwas einfacher. Er findet fast alles in der Exchange PowerShell und für den tieferen Zugriff auf Daten kann er EWS bemühen und manchmal etwas AD-Verwaltung oder AzureAD-Verwaltung. Bei Teams ist das Bild nicht so klar. Es gibt zwar eine eigene PowerShell für Teams aber die verwaltet Teams aber nicht die Benutzer. Die Benutzer werden bislang noch über die Skype for Business Online PowerShell verwaltet. Teams ist immer noch sehr eng mit Skype for Business verzahnt.

Weiterhin liegen einige Dateien natürlich in Exchange Groups Postfächern und eine SharePoint Site gibt es ebenfalls. Diese Objekte können eingeschränkt mit deren Verwaltungswerkzeugen konfiguriert werden. Immer mehr wird auch Microsoft Graph zukünftig eine Rolle spielen, um Informationen abzufragen und zu bearbeiten. Es bleibe also spannend

Skype for Business PowerShell

Dennoch sollte der erste Weg die PowerShell sein, mit der Sie Einstellungen und Konfigurationen in ihrem Tenant bezüglich Teams vornehmen können. Dazu brauchen wir erst einmal die aktuelle Version der Skypew for Business Online PowerShell

Windows PowerShell-Modul für Skype for Business Online
https://www.microsoft.com/de-de/download/details.aspx?id=39366

In einer PowerShell können wir nach der Installation das Modul laden und die Befehle anzeigen lassen, die direkt mit Teams etwas zu tun haben.

Import-Module skypeonlineconnector 

$sfbonlinesession=New-CsOnlineSession

Import-PSSession $sfbonlinesession

get-command *-CsTeams*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Get-CsTeamsCallingPolicy                           1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsGuestMessagingConfiguration             1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsInteropPolicy                           1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsMeetingPolicy                           1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsMessagingPolicy                         1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsMigrationConfiguration                  1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsUpgradeConfiguration                    1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsUpgradePolicy                           1.0        tmp_gsbumat0.tsm
Function        Get-CsTeamsVideoInteropServicePolicy               1.0        tmp_gsbumat0.tsm
Function        Grant-CsTeamsCallingPolicy                         1.0        tmp_gsbumat0.tsm
Function        Grant-CsTeamsInteropPolicy                         1.0        tmp_gsbumat0.tsm
Function        Grant-CsTeamsMeetingPolicy                         1.0        tmp_gsbumat0.tsm
Function        Grant-CsTeamsMessagingPolicy                       1.0        tmp_gsbumat0.tsm
Function        Grant-CsTeamsUpgradePolicy                         1.0        tmp_gsbumat0.tsm
Function        Grant-CsTeamsVideoInteropServicePolicy             1.0        tmp_gsbumat0.tsm
Function        New-CsTeamsGuestMessagingConfiguration             1.0        tmp_gsbumat0.tsm
Function        New-CsTeamsMessagingPolicy                         1.0        tmp_gsbumat0.tsm
Function        Remove-CsTeamsGuestMessagingConfiguration          1.0        tmp_gsbumat0.tsm
Function        Remove-CsTeamsInteropPolicy                        1.0        tmp_gsbumat0.tsm
Function        Remove-CsTeamsMeetingPolicy                        1.0        tmp_gsbumat0.tsm
Function        Remove-CsTeamsMessagingPolicy                      1.0        tmp_gsbumat0.tsm
Function        Set-CsTeamsCallingPolicy                           1.0        tmp_gsbumat0.tsm
Function        Set-CsTeamsGuestMessagingConfiguration             1.0        tmp_gsbumat0.tsm
Function        Set-CsTeamsMeetingPolicy                           1.0        tmp_gsbumat0.tsm
Function        Set-CsTeamsMessagingPolicy                         1.0        tmp_gsbumat0.tsm
Function        Set-CsTeamsMigrationConfiguration                  1.0        tmp_gsbumat0.tsm
Function        Set-CsTeamsUpgradeConfiguration                    1.0        tmp_gsbumat0.tsm

Microsoft veröffentlich zu jedem Befehl die entsprechende Bedeutung und Parameter, so dass ich mir hier eine Wiederholung spare

Teams PowerShell

Wenn Sie nach Teams und PowerShell suchen, landen Sie aber auch auf einem zweiten Modul, welches auf GITHUB gepflegt wird

Schon an den Commandlets können Sie erkennen, dass es hier weniger um die Benutzer und Migrations- oder Tenant-Einstellungen geht, sondern um Inhalte.

Import-Module microsoftteams

Get-Command -Module microsoftteams

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Add-TeamUser                                       0.9.3      microsoftteams
Cmdlet          Connect-MicrosoftTeams                             0.9.3      microsoftteams
Cmdlet          Disconnect-MicrosoftTeams                          0.9.3      microsoftteams
Cmdlet          Get-Team                                           0.9.3      microsoftteams
Cmdlet          Get-TeamChannel                                    0.9.3      microsoftteams
Cmdlet          Get-TeamFunSettings                                0.9.3      microsoftteams
Cmdlet          Get-TeamGuestSettings                              0.9.3      microsoftteams
Cmdlet          Get-TeamHelp                                       0.9.3      microsoftteams
Cmdlet          Get-TeamMemberSettings                             0.9.3      microsoftteams
Cmdlet          Get-TeamMessagingSettings                          0.9.3      microsoftteams
Cmdlet          Get-TeamUser                                       0.9.3      microsoftteams
Cmdlet          New-Team                                           0.9.3      microsoftteams
Cmdlet          New-TeamChannel                                    0.9.3      microsoftteams
Cmdlet          Remove-Team                                        0.9.3      microsoftteams
Cmdlet          Remove-TeamChannel                                 0.9.3      microsoftteams
Cmdlet          Remove-TeamUser                                    0.9.3      microsoftteams
Cmdlet          Set-Team                                           0.9.3      microsoftteams
Cmdlet          Set-TeamChannel                                    0.9.3      microsoftteams
Cmdlet          Set-TeamFunSettings                                0.9.3      microsoftteams
Cmdlet          Set-TeamGuestSettings                              0.9.3      microsoftteams
Cmdlet          Set-TeamMemberSettings                             0.9.3      microsoftteams
Cmdlet          Set-TeamMessagingSettings                          0.9.3      microsoftteams
Cmdlet          Set-TeamPicture                                    0.9.3      microsoftteams

Die Anleitung liegt ebenfalls aus GitHub

Ein Beispiel für die Anwendung liefert Microsoft gleich mit:

Da diese Module quasi "Open Source" sind, können Sie auch einfach einen Blick in die Quellen werfen. Schon der Blick auf das lokale Dateisystem zeigt ihnen, welche DLLs und APIs dieses Modul verwendet.

Auch andere Seiten haben darüber geschrieben

AzureAD, Exchange, OneDrive und SharePoint

Teams funktioniert nur in Office 365 mit einem Benutzer in der Cloud, der zudem auch noch die anderen Dienste im Hintergrund benötigt. Firmen mit einem lokalen Active Directory werden im Rahmen des Office 365 Identity Management die Benutzer über AADConnect verwalten. Die Verwaltung von Exchange Groups-Postfach, SharePoint-Teamsite und anderer Objekte übernimmt Teams automatisch. Dennoch können Sie in Grenzen auch an die Informationen kommen. Das beschreibe ich später einmal auf einer gesonderten Seite.

Weitere Links