Teams Richtlinien einer Gruppe zuweisen 283

Richtlinien für Teams kann man im Teams Admincenter erstellen und einzelnen Nutzern oder Gruppen zuweisen. Manche Richtlinien wie z.B.: die „App-Einrichtungsrichtlinie“ kann nur einzelnen Nutzern hinzugefügt werden. Hier eignet sich die Verteilung mit Hilfe von Powershell.

Um Richtlinien über PowerShell zuweisen zu können benötigt man das Modul für Microsoft Teams, welches man direkt in PowerShell installieren kann:

Install-Module MicrosoftTeams

Des Weiteren wird das AzureAD Modul benötigt, welches auch installiert werden muss:

Install-Module AzureAD

Mit folgendem Befehl kann man die verschiedenen Lizenzen der Schule abfragen, wenn man mit dem AzureAD Modul verbunden ist. Diese werden benötigt, da man im Anschluss die Nutzer nach Lizenztypen filtern und entsprechende Richtlinien zuweisen kann:

Get-AzureAdSubscribedSku | Select-Object -Property SkuPartNumber,SkuId

Mit folgendem Skript kann man verschiedene Richtlinien suchen und dann den ausgewählten Nutzern hinzufügen:

######################################
# 1. Bei benötigten Modulen anmelden #
######################################
#Anmeldung bei MicrosoftTeams für z.B.: Get-CsTeamsMeetingPolicy
Import-Module MicrosoftTeams
$sfbSession = New-CsOnlineSession
Import-PSSession $sfbSession
#Anmeldung bei Connect-AzureAD für: Get-AzureADUser
Connect-AzureAD
#Anmeldung bei MicrosoftTeams für: New-CsBatchPolicyAssignmentOperation
Connect-MicrosoftTeams


###########################################
# 2. Nutzer suchen und in Array speichern #
###########################################
#sammelt alle Nutzer mit der Schülerlizenzierung und speichert diese in einen Array
$schueler = Get-AzureADUser -All $true | Where-Object {($_.assignedLicenses).SkuId -contains "314c4481-f395-4525-be8b-2ec4bb1e9d91"}
#sucht einen Nutzer nach seinem Benutzernamen und speichert diesen in einen Array -> zum Testen
$schueler = Get-AzureADUser -Filter "userPrincipalName eq 'super@test.de'" 

#listet alle ausgewählten Nutzer auf:
foreach($a in $schueler){ 
    Write-Host $a.UserPrincipalName
}

#######################################
# 3. verfügbare Richtlinien auflisten #
#######################################
#alle verfügbaren Besprechungsrichtlinien
Get-CsTeamsMeetingPolicy | Select Identity | Out-String -Width 200
#alle verfügbaren Nachrichtenrichtlinien
Get-CsTeamsMessagingPolicy | Select Identity | Out-String -Width 200
#alle verfügbaren Teams-Apps Einrichtungsrichtlinien
Get-CsTeamsAppSetupPolicy | Select Identity | Out-String -Width 200
#alle verfügbaren Anrufrichtlinien
Get-CsTeamsCallingPolicy | Select Identity | Out-String -Width 200

################################################
# 4. Richtlinie den gewählten Nutzern zuweisen #
################################################
#weist die Nachrichtenrichtlinie "Education_PrimaryStudent" allen $schueler zu:
New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMessagingPolicy -PolicyName 'Education_PrimaryStudent' -Identity $schueler.ObjectId

#weist die Besprechungsrichtlinie "Education_PrimaryStudent" allen $schueler zu:
New-CsBatchPolicyAssignmentOperation -PolicyType TeamsMeetingPolicy -PolicyName 'Education_PrimaryStudent' -Identity $schueler.ObjectId

#weist die Teams-Apps Einrichtungsrichtlinie "Education_PrimaryStudent" allen $schueler zu:
New-CsBatchPolicyAssignmentOperation -PolicyType TeamsAppSetupPolicy -PolicyName 'Education_PrimaryStudent' -Identity $schueler.ObjectId

#weist die Anrufrichtlinie "DisallowCalling" allen $schueler zu:
New-CsBatchPolicyAssignmentOperation -PolicyType TeamsCallingPolicy -PolicyName 'Education_PrimaryStudent' -Identity $schueler.ObjectId