Additional features, settings, or issues not covered by specific Microsoft Teams categories
Your commands are valid: Grant-CsApplicationAccessPolicy supports -Group, and an on-premises security group synchronized to Microsoft Entra ID can be used without being mail-enabled, provided Teams can resolve the synchronized group and the targeted users are direct members.
Create and assign the policy
Connect to Teams PowerShell, create the policy, and pass the synchronized group’s Microsoft Entra object ID to -Group:
Connect-MicrosoftTeams
New-CsApplicationAccessPolicy `
-Identity "TeamsPolicy1" `
-AppIds "<app-client-id>" `
-Description "Meeting access for a group"
Grant-CsApplicationAccessPolicy `
-PolicyName "TeamsPolicy1" `
-Group "<group-object-id>" `
-Rank 1
New-CsApplicationAccessPolicy accepts one or more application client IDs, while Grant-CsApplicationAccessPolicy has a dedicated GrantToGroup parameter set with -Group, -PolicyName, and optional -Rank. The group object ID is the least ambiguous identifier to use.^1^^2^
-Rank controls precedence when a user belongs to multiple groups assigned different policies of the same type. If omitted, the assignment receives the lowest rank; rank 1 is the highest group rank. A policy assigned directly to a user takes precedence over every group assignment.^3^
Group requirements
- Mail-enabled security group: Supported, including a group synchronized from on-premises AD.
- Standard security group: Also supported; mail enablement is not required for Teams group policy assignment.
- Microsoft 365 group or distribution list: The general Teams group-policy framework supports these as well.^3^
- Nested membership: Not expanded. Only users who are direct members of the assigned group receive the policy.
- Synchronization: The group and its relevant membership must be present in Microsoft Entra ID before assignment. Use the group’s Entra object ID, not its on-premises AD
objectGUID. - Dynamic membership: The supplied official Teams references do not establish a special restriction on dynamic Entra security groups. Avoid applying Exchange Online
ApplicationAccessPolicyrecipient restrictions to this Teams policy; these are separate policy systems.
Mail enablement is therefore optional for this Teams command. It would be required for certain Exchange Online application access policies, but those use New-ApplicationAccessPolicy, not New-CsApplicationAccessPolicy.^4^
Verify the assignment
Check that the policy and group assignment exist:
Get-CsApplicationAccessPolicy
Get-CsGroupPolicyAssignment `
-PolicyType ApplicationAccessPolicy
These commands list the policy and its group-policy ranking.^5^
For a direct group member, inspect the effective assignment rather than relying on Get-CsOnlineUser, because that cmdlet only exposes direct assignments:
Get-CsUserPolicyAssignment `
-Identity "<user-object-id>" `
-PolicyType ApplicationAccessPolicy
Get-CsUserPolicyAssignment returns policies inherited from groups as well as policies assigned directly.^6^
Prerequisites and limitations
- Use an account authorized to administer Teams policy configuration and connect through the Microsoft Teams PowerShell module.
- The application must have the required Microsoft Graph application permission for the cloud communications operation. Supported examples include
OnlineMeetings.Read.All,OnlineMeetings.ReadWrite.All, and the listed meeting-artifact or virtual-event application permissions.^7^ - Only one application access policy can be effective for a user; a direct user assignment overrides group assignments.^2^
- A policy type can be assigned to at most 64 groups.
- The recommended maximum is 50,000 members per group.
- Large-group assignment or membership changes can take 24 hours or more to propagate. Application access policy changes can then take up to 30 minutes to affect Microsoft Graph REST calls.
- Teams group policy assignment is unavailable in Microsoft 365 DoD.^3^
References
- New-CsApplicationAccessPolicy-Description
- Grant-CsApplicationAccessPolicy-Syntax
- New-CsGroupPolicyAssignment-Description
- Creates a new application access policy in Exchange Online PowerShell to restrict an application's access to members of a specified mail-enabled security group.
- PowerShell command to list existing application access policies in Microsoft Teams to verify policy assignments.
- Get-CsUserPolicyAssignment-Description
- Grants the specified application access policy to a user identified by their user ID, allowing the app IDs in the policy to access online meetings and virtual e...