How to Configure Teams Anonymous Meeting Join Policies in PowerShell Using Set-CsTeamsMeetingPolicy

In enterprise and educational environments, securing virtual meeting rooms against unverified outside attendees is a paramount security and privacy requirement. Allowing unauthenticated external users to join Microsoft Teams meetings can expose sensitive corporate discussions to eavesdropping, disruptive participant behaviour, or corporate espionage. Conversely, sales organisations, legal consultations, and public webinars frequently require frictionless guest entry without forcing external partners to log in with Microsoft Entra ID credentials.

Microsoft Teams administrators manage these perimeter rules using the CsTeamsMeetingPolicy cmdlet family in the Microsoft Teams PowerShell module. By manipulating parameters such as -AllowAnonymousUsersToJoinMeeting, administrators can enforce granular join requirements across specific user departments or global tenants. This operates in tandem with strategies to configure lobby bypass policies in Teams and configure Teams Q&A policies with PowerShell.

Understanding Anonymous Join vs. Guest Access

Before modifying meeting policies, it is essential to distinguish between authenticated external access and anonymous joins:

  • Authenticated Guest / External Users: Participants who sign in with an external Microsoft Entra ID (Azure AD), personal Microsoft account, or federated tenant identity. Their identities and email addresses are verified and logged in compliance audits.
  • Anonymous Join: Attendees who join a meeting via a shared web link without authenticating. They simply enter a custom display name in their browser and enter the meeting lobby.

Connecting to the Microsoft Teams PowerShell Module

To inspect and update meeting policies, ensure you have the latest Microsoft Teams PowerShell module installed and authenticated:

  1. Launch PowerShell as an Administrator.
  2. Connect to your Microsoft 365 tenant using global administrator or Teams administrator credentials:
    Connect-MicrosoftTeams
  3. Verify your active tenant connection and account session details.

Inspecting Current Anonymous Join Policies

To check the current configuration of your tenant’s Global (Org-wide default) meeting policy:

Get-CsTeamsMeetingPolicy -Identity Global | Select-Object Identity, AllowAnonymousUsersToJoinMeeting

If AllowAnonymousUsersToJoinMeeting returns True, any meeting organised by users assigned this policy will permit anonymous unauthenticated attendees. If False, anyone joining without an authenticated Microsoft account is blocked from entering.

Disabling Anonymous Meeting Joins Tenant-Wide

For high-security organisations, government departments, or regulated financial firms that prohibit unauthenticated attendees, disable anonymous join across the default global policy:

Set-CsTeamsMeetingPolicy -Identity Global -AllowAnonymousUsersToJoinMeeting $false

When external participants attempt to open a meeting link organised by internal staff, Teams will mandate that they sign in before joining.

Creating a Custom Policy for Sales, Marketing, and Webinars

Rather than enabling anonymous access globally, best practice dictates keeping the Global policy locked down and assigning an exception policy strictly to outward-facing teams (such as PR, recruitment, or sales):

  1. Create a new custom meeting policy permitting anonymous entry:
    New-CsTeamsMeetingPolicy -Identity "AnonymousJoinAllowed" -AllowAnonymousUsersToJoinMeeting $true
  2. Assign the policy to a specific employee:
    Grant-CsTeamsMeetingPolicy -Identity "[email protected]" -PolicyName "AnonymousJoinAllowed"
  3. Alternatively, assign the policy to an entire Entra ID security group using group policy assignment:
    Grant-CsTeamsMeetingPolicy -Group "ExternalRelationsGroup" -PolicyName "AnonymousJoinAllowed" -Rank 1

Ensuring Tenant-Wide Meeting Configuration Alignment

In addition to per-user meeting policies, Microsoft Teams enforces a master tenant-level switch in CsTeamsMeetingConfiguration. If this global switch is disabled, user-level policies cannot override it:

  1. Query the master meeting configuration:
    Get-CsTeamsMeetingConfiguration -Identity Global | Select-Object DisableAnonymousJoin
  2. If DisableAnonymousJoin is set to True, anonymous joins are globally suppressed across the entire organisation. To allow user policies to govern behaviour, set it to False:
    Set-CsTeamsMeetingConfiguration -Identity Global -DisableAnonymousJoin $false

Key PowerShell Parameters for Anonymous Meeting Controls

Parameter Allowed Values Purpose
-AllowAnonymousUsersToJoinMeeting $true / $false Controls whether unauthenticated users can join meetings organised by assigned users
-AutoAdmittedUsers EveryoneInCompany, Everyone Forces anonymous attendees to wait in the lobby until admitted by an organiser
-DisableAnonymousJoin $true / $false Global tenant kill-switch located inside Set-CsTeamsMeetingConfiguration

Frequently Asked Questions

Can anonymous users bypass the meeting lobby?

By default, anonymous attendees are always placed into the lobby and must be admitted by the meeting organiser or presenter. You can enforce this by setting -AutoAdmittedUsers EveryoneInCompany.

How long does it take for policy changes to replicate?

Policy updates dispatched via PowerShell typically propagate to client applications within 15 minutes to 2 hours across Microsoft Teams infrastructure.

Can anonymous attendees participate in meeting chat?

Yes, if meeting chat is enabled. However, administrators can configure -MeetingChatEnabledType EnabledExceptDuringMeeting or manage external chat controls under messaging policies to restrict unwanted text exchanges.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.