So, you have school data sync setup and all of your class teams have been generated in Microsoft Teams. Teachers are eager to start using it for extending the classroom or remote learning. Teachers then realise that students can do things that they were not aware of and request for some rights to be restricted.
Here is a list of useful PowerShell scripts to help you manage some of the most common issues that schools face.
- – Allow teachers to delete student messages
- – Stop students emailing the class group
- – Disable chat for students
- – Calling and Live Event Policies
Allow teachers to delete student messages
It’s surprising that this is not enabled as standard. Owners in class teams cannot delete member messages unless a custom message policy is set.
Create a messaging policy in the Teams Admin centre
Create a new messaging policy and select “Owners can delete sent messages”
Apply Custom Message Policy using PowerShell
Â
This needs to be run as a global admin. The variables at the top of the script should be changed to the AAD (or synced AD) group that you want to apply the messaging policy to and the message policy name.
#Variables to change - add the AAD group and custom message policy name here $ADSecurityGroupNameToApplyPolicyTo="All Teachers" $customMessagePolicyName="CustomTeacherMessagingPolicy1" # Install AzureAD PowerShell if you don't already have it - commented out below # install-module azuread #Import modules if you haven't already Import-Module SkypeOnlineConnector Import-Module AzureAD #Connect to Skype and Azure AD $userCredential = Get-Credential $sfbSession = New-CsOnlineSession -Credential $userCredential Import-PSSession $sfbSession Connect-AzureAD -Credential $userCredential $GroupUsers = Get-AzureADGroup -ALL $true -Filter "DisplayName eq '$ADSecurityGroupNameToApplyPolicyTo'" | Get-AzureADGroupMember -ALL $true | select mail foreach ($GroupUser in $GroupUsers) { $userEmail=$GroupUser.Mail write-host "Processing $userEmail" Grant-CsTeamsMessagingPolicy -PolicyName "$customMessagePolicyName" -Identity "$userEmail" }
Stop students emailing the class group
Once a student receives a welcome message into a group, they may reply back to it or find it in the address list and start a large group email.
In the script below connect to Microsoft Exchange PowerShell. You should update the variables with an AD security group for students to apply the policy to. To ensure you only apply this to the relevant teams, use the wildcard search to filter them. In this example we are assuming teams have been named in a format of SchoolCode-AcademicYear-ClassName so we can set the wildcard to only apply this setting to Teams starting with SCH-2019.
######Replace the following variables if necessary########## $studentADSecurityGroup ="All Students" #AD Group for all students $wildcardsearch="SCH-2019*" #Wildcard for Teams display name - Search for Teams beginning with .... ########################################################### $MyCredential = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $MyCredential -Authentication Basic -AllowRedirection Import-PSSession $Session -AllowClobber $groups = Get-UnifiedGroup -ResultSize 20000 -SortBy DisplayName -Identity "$wildcardsearch" | Select DisplayName,WhenCreated,Id foreach ($group in $groups) { $teamName = $group.DisplayName Write-Host "restricting group emails on $teamName for $studentADSecurityGroup" Set-UnifiedGroup -Identity "$teamName" -RejectMessagesFromSendersOrMembers "$studentADSecurityGroup" }
Disable chat for students
Teams is a safe environment for students to chat, chats can be audited and monitored more closely than if they where to use WhatsApp or snapchat outside of the school systems. However, there are some situations where it might require turning off for safeguarding reasons.
Create message policy in Teams admin centre
Click “Add” to create a new message policy and turn off the chat setting.
Apply Custom Message Policy using PowerShell
This needs to be run as a global admin. The variables at the top of the script should be changed to the AAD (or synced AD) group that you want to apply the messaging policy to and the message policy name.
#Variables to change - add the AAD group and custom message policy name here $ADSecurityGroupNameToApplyPolicyTo="All Students" $customMessagePolicyName="CustomStudentMessagingPolicy1" # Install AzureAD PowerShell if you don't already have it - commented out below # install-module azuread #Import modules if you haven't already Import-Module SkypeOnlineConnector Import-Module AzureAD #Connect to Skype and Azure AD $userCredential = Get-Credential $sfbSession = New-CsOnlineSession -Credential $userCredential Import-PSSession $sfbSession Connect-AzureAD -Credential $userCredential $GroupUsers = Get-AzureADGroup -ALL $true -Filter "DisplayName eq '$ADSecurityGroupNameToApplyPolicyTo'" | Get-AzureADGroupMember -ALL $true | select mail foreach ($GroupUser in $GroupUsers) { $userEmail=$GroupUser.Mail write-host "Processing $userEmail" Grant-CsTeamsMessagingPolicy -PolicyName "$customMessagePolicyName" -Identity "$userEmail" }
Calling Policies
Calling policies can be used to configure what can and can’t be done by users when calling on Teams. An example of this might be for preventing students from calling on Teams.
Calling policies can be found under Voice as shown below:
These are the settings that can be applied:
This is how we apply a calling policy:
#Variables to change - add the AAD group and custom message policy name here $ADSecurityGroupNameToApplyPolicyTo="All Students" $customMessagePolicyName="CallingPolicyForStudents" # Install AzureAD PowerShell if you don't already have it - commented out below # install-module azuread #Import modules if you haven't already Import-Module SkypeOnlineConnector Import-Module AzureAD #Connect to Skype and Azure AD $userCredential = Get-Credential $sfbSession = New-CsOnlineSession -Credential $userCredential Import-PSSession $sfbSession Connect-AzureAD -Credential $userCredential $GroupUsers = Get-AzureADGroup -ALL $true -Filter "DisplayName eq '$ADSecurityGroupNameToApplyPolicyTo'" | Get-AzureADGroupMember -ALL $true | select mail foreach ($GroupUser in $GroupUsers) { $userEmail=$GroupUser.Mail write-host "Processing $userEmail" Grant-CsTeamsCallingPolicy -Identity "$userEmail" -PolicyName "$customMessagePolicyName" }
Live Event Policies
Live Event policies might be used restricting who can attend or record them live events.
Live event policies can be found under Meetings as shown below:
These are the options when setting up a Live Events policy.
This is how we apply a Live Event policy:
#Variables to change - add the AAD group and custom message policy name here $ADSecurityGroupNameToApplyPolicyTo="All Students" $customMessagePolicyName="LiveEventPolicyForStudents" # Install AzureAD PowerShell if you don't already have it - commented out below # install-module azuread #Import modules if you haven't already Import-Module SkypeOnlineConnector Import-Module AzureAD #Connect to Skype and Azure AD $userCredential = Get-Credential $sfbSession = New-CsOnlineSession -Credential $userCredential Import-PSSession $sfbSession Connect-AzureAD -Credential $userCredential $GroupUsers = Get-AzureADGroup -ALL $true -Filter "DisplayName eq '$ADSecurityGroupNameToApplyPolicyTo'" | Get-AzureADGroupMember -ALL $true | select mail foreach ($GroupUser in $GroupUsers) { $userEmail=$GroupUser.Mail write-host "Processing $userEmail" Grant-CsTeamsMeetingBroadcastPolicy -Identity "$userEmail" -PolicyName "$customMessagePolicyName" }
Update 11/11/2020: We have been informed that you may need to connect to Teams PowerShell to run these commands rather than Skype on some tenants (Connect-MicrosoftTeams).
Hi Tony,
We are a school conducting classes through MS Teams, their is problem where students are muting the teacher while the class is going on and they are unmuting them self.
Is their any way where teacher can have complete control on “Mute all” option, please guide – this is for A1 program in education.
I agree, teachers really need that. Teachers can mute all but they can unmute themselves. There is a user voice comment about it here, I suggest voting on it: https://microsoftteams.uservoice.com/forums/555103-public/suggestions/40156951-can-the-presenter-lock-the-option-where-students-c
If it is just a webinar with no student interaction, it might be worth conducting it as a Teams Live Event instead. That way people can just watch and cannot speak except through an approved chat.
Update to this. Microsoft released a message in the update centre today that this feature will be available soon.