Microsoft Teams security

How to check meeting policies in Microsoft Teams

Read every meeting policy's join and lobby settings with the Microsoft Teams PowerShell module, review them in the Teams admin centre, or run Altivane's Teams Policies report.

By the Published

To check meeting policies in Microsoft Teams, read every policy with Get-CsTeamsMeetingPolicy and compare the settings that decide who gets in: anonymous join, who can bypass the lobby and whether dial-in callers skip it. The organisation-wide anonymous join setting overrides every policy, and organisers can change the lobby defaults for their own meetings.

Choose the method that fits the job
MethodBest fit
PowerShellA CSV of every meeting policy's join, lobby, recording and chat settings.
Admin centreReading or comparing a few policies in the Teams admin centre.
AltivaneRecommended for recurring reviews, with how many people each policy applies to beside its settings.

Before you start

Use an account with the Teams Administrator or Teams Communications Administrator role, which manage meeting policies, or Teams Reader to read them in the admin centre without changing anything. The example passes no permission or scope: its access is the signed-in account's role.

Know how they apply. Everyone gets the Global (Org-wide default) policy unless a custom policy is assigned to them. Lobby and anonymous join are per-organiser settings: everyone in a meeting follows the organiser's policy. Microsoft says a change can take up to 24 hours to take effect. The examples read and export; they change and assign no policy.

Option 1

Check meeting policies with PowerShell

Install the module once, then connect and export 1 row for each meeting policy.

PowerShell
# Install once, if the module is not already installed.
Install-Module MicrosoftTeams -Scope CurrentUser
PowerShell
$ErrorActionPreference = 'Stop'
Connect-MicrosoftTeams | Out-Null
try {
    $policies = @(Get-CsTeamsMeetingPolicy)
    $report = @(foreach ($policy in $policies) {
        [pscustomobject]@{
            Policy = "$($policy.Identity)" -replace '^Tag:', ''
            AnonymousJoin = $policy.AllowAnonymousUsersToJoinMeeting
            AnonymousStart = $policy.AllowAnonymousUsersToStartMeeting
            WhoBypassesLobby = $policy.AutoAdmittedUsers
            DialInBypassesLobby = $policy.AllowPSTNUsersToBypassLobby
            CloudRecording = $policy.AllowCloudRecording
            Transcription = $policy.AllowTranscription
            MeetingChat = $policy.MeetingChatEnabledType
            Presenters = $policy.DesignatedPresenterRoleMode
            ExternalGiveControl = $policy.AllowExternalParticipantGiveRequestControl
        }
    })
    $report | Sort-Object Policy |
        Export-Csv -Path './teams-meeting-policies.csv' -NoTypeInformation -Encoding utf8
    Write-Output "$($report.Count) meeting policies exported."
} finally {
    Disconnect-MicrosoftTeams
}

The CSV has 1 row for each policy. The script takes the Tag: prefix off custom policy names, and Global is the org-wide default. The tenant always has the Global policy, so the list is never empty. To add a setting, add its property to the object: the names match the parameters of Set-CsTeamsMeetingPolicy.

Check the organisation-wide anonymous join setting

Reconnect with Connect-MicrosoftTeams, then read the setting that every policy depends on. True means anonymous users can't join any meeting.

PowerShell
# Run while connected to Microsoft Teams.
Get-CsTeamsMeetingConfiguration | Select-Object Identity, DisableAnonymousJoin

Option 2

Review meeting policies in the admin centre

  1. Sign in to the Microsoft Teams admin centre for the correct tenant.
  2. Go to Meetings > Meeting policies and select a policy, such as Global (Org-wide default).
  3. Read the Meeting join & lobby section, which holds the anonymous join settings, Who can bypass the lobby and People dialing in can bypass the lobby, then the recording and chat sections.
  4. Go to Meetings > Meeting settings and read Anonymous users can join a meeting under Participants. Leave each page without choosing Save.

This suits checking a few policies. It does not suit a side-by-side review of every policy, since each one opens on its own page.

Common questions

Why can't anonymous users join when the policy allows it?

The organisation-wide setting overrides it. When anonymous join is turned off in the meeting settings, anonymous users can't join any meeting, whatever the organiser's policy says. Microsoft recommends leaving that setting on and controlling anonymous join through policies.

Why do people skip the lobby in some meetings and not others?

Who can bypass the lobby and People dialing in can bypass the lobby set the defaults. Organisers can change both in their meeting options, so a meeting can differ from the policy.

Who has which meeting policy?

Everyone without a custom policy assigned has Global. To export who has each policy, see how to export policy assignments in Microsoft Teams.

Microsoft references

Technical references checked on 7 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.

Talk to us about Altivane

Questions, or pricing? Get in touch.

Contact us