In modern corporate enterprises, Microsoft Teams users collaborate not only with internal colleagues but also with external clients, vendors, and business partners. However, when employees join video conferences and collaborative meetings hosted in external third-party Microsoft 365 tenants, their corporate data, chat messages, file attachments, and video streams enter an external administrative boundary governed by the foreign organization’s security policies. In high-security defense contractors, financial institutions, government agencies, and regulated healthcare providers, joining external meetings poses severe data loss prevention (DLP) and confidentiality risks. Microsoft 365 administrators control whether users can join meetings hosted outside the home tenant using Microsoft Teams PowerShell. This article demonstrates how to inspect, configure, and assign external meeting join policies across an organization using Set-CsTeamsMeetingPolicy.
Understanding External Meeting Join Governance in Teams Policies
Within Microsoft Teams meeting policies, external meeting participation is regulated by the AllowUserToJoinExternalMeeting parameter inside CsTeamsMeetingPolicy. This setting dictates whether users licensed within your tenant are permitted to connect to meetings organized by external tenants:
Enabled(Default): Users can freely join meetings organized by outside companies and third-party Microsoft 365 tenants via meeting links, calendar invitations, or federation.Disabled: Strictly blocks users from joining any meeting hosted by an external tenant. When an employee attempts to click an external Teams meeting link, the client presents an administrative restriction error preventing connection.
Administrators can enforce this boundary control globally across the entire tenant or create tailored policies—blocking external meetings for sensitive research and development departments while permitting sales, procurement, and executive leadership to attend external client briefings.
Connecting to the Microsoft Teams PowerShell Module
To inspect and update meeting policies, launch an elevated PowerShell window and establish an administrative connection to your tenant:
Connect-MicrosoftTeams
Ensure you authenticate with an administrative account assigned the Teams Administrator or Global Administrator role.
Auditing Current External Meeting Join Policies
Before adjusting configurations, review your organization’s active meeting policies. Check the tenant-wide Global default policy:
Get-CsTeamsMeetingPolicy -Identity Global | Select-Object Identity, Description, AllowUserToJoinExternalMeeting
To audit external join settings across all custom meeting policies currently deployed in your tenant, execute:
Get-CsTeamsMeetingPolicy | Select-Object Identity, AllowUserToJoinExternalMeeting | Format-Table -AutoSize
If AllowUserToJoinExternalMeeting evaluates to Enabled across all policies, any employee in your organization can join external conferences without administrative restriction.
Blocking External Meeting Joins Globally
In high-compliance government or military environments where cross-tenant communications are strictly prohibited to prevent data leakage, block external meeting participation on the Global organizational policy:
Set-CsTeamsMeetingPolicy -Identity Global -AllowUserToJoinExternalMeeting "Disabled"
Conversely, if external joins were previously restricted and your organization now wants to restore cross-company collaborative access, re-enable the feature globally:
Set-CsTeamsMeetingPolicy -Identity Global -AllowUserToJoinExternalMeeting "Enabled"
Creating and Assigning Custom External Join Policies
In most commercial enterprises, maintaining a balanced hybrid policy is preferred. For example, you can maintain standard external access globally while creating a strict lockdown policy for sensitive financial auditing, legal, or intellectual property research groups.
To create a dedicated custom policy that blocks external meeting joins for sensitive accounts, run:
New-CsTeamsMeetingPolicy -Identity "Restricted-InternalOnly-Meetings" -Description "Blocks users from joining external third-party meetings to protect data boundaries" -AllowUserToJoinExternalMeeting "Disabled"
To assign this custom policy to an individual user, execute Grant-CsTeamsMeetingPolicy:
Grant-CsTeamsMeetingPolicy -Identity "[email protected]" -PolicyName "Restricted-InternalOnly-Meetings"
To scale policy assignment across an entire department, bind the policy dynamically to an Entra ID (Azure AD) security group using New-CsGroupPolicyAssignment:
$GroupId = (Get-MgGroup -Filter "DisplayName eq 'Core Research and IP Engineering'").Id
New-CsGroupPolicyAssignment -GroupId $GroupId -PolicyType TeamsMeetingPolicy -PolicyName "Restricted-InternalOnly-Meetings" -Rank 1
Verifying Policy Assignments and Client Enforcement
To verify the effective meeting policy applied to a specific user account, query the user policy assignment table:
Get-CsUserPolicyAssignment -Identity "[email protected]" | Where-Object { $_.PolicyType -eq "TeamsMeetingPolicy" }
Policy updates propagate to Teams desktop, web, and mobile clients within 2 to 4 hours. Once applied, users covered by the disabled policy will find that clicking external invitation links results in a clean notification stating that joining external meetings is restricted by policy, preventing unauthorized cross-tenant data exposure while preserving full internal meeting collaboration.