Skip to content

Teams Meeting & Guest Policy Audit

The question it answers: Which meeting policies let anonymous users join, skip the lobby or take control, and how many users does each apply to?

Who can join meetings anonymously, who skips the lobby, whether external participants can take control of a shared screen, and whether recordings and transcripts are created - per meeting policy, with the number of users on each. Teams External Access covers federation only.

Where in the appTenant › Teams Voice, Power Platform & Copilot › Teams Meeting & Guest Policies
WorkloadTeams and collaboration
KindFindings list · dashboard tile
DataRead from Microsoft 365 when someone first opens it, then kept for the report cache lifetime (Settings > Data & cache, 1 hour unless changed). It reads through PowerShell (Exchange Online or SharePoint Online), so the first load takes longer than a Graph report.
LicenceMicrosoft Teams.
Report id (API and MCP)tenant.collaboration.teams-meeting-policies
ColumnKeyType
SeveritySeverityStatus
PolicyCategoryText
SettingSubjectLink
CheckSettingText
ValueValueText
FindingFindingText
DetailDetailText
DateWhenDate
Users on policyNumberNumber

A findings list hides columns that no row fills. Severity is Critical, Serious, Warning, OK or Info; rows rated Critical, Serious or Warning need attention (Working with findings).

Licence: Microsoft Teams.

Application permissions: none of its own.

Roles and other setup:

  • Teams PowerShell app-only (certificate)
Data sources it reads
  • Get-CsTeamsMeetingPolicy
  • Get-CsOnlineUser (policy assignment counts)
  • Get-CsTeamsMeetingConfiguration
  • Get-CsTeamsGuestMeetingConfiguration
  • Get-CsTeamsGuestCallingConfiguration
GET /ir-api/v1/reports/tenant.collaboration.teams-meeting-policies?size=100

An AI assistant reads it with the MCP tool get_report and the id tenant.collaboration.teams-meeting-policies. The client needs the Read grant for Teams and collaboration. See Using the API.