In large enterprise organisations, maintaining consistent structure across collaborative workspaces is critical to prevent information sprawl. Microsoft Teams allows users to create new teams based on pre-defined Team Templates—blueprints that pre-configure channel structures, tab applications, settings, and welcome tabs for specific use cases (such as “Manage a Project”, “Quality and Safety”, “Hospital Ward”, or “Retail Store”). However, in complex corporate environments, organizations often design proprietary, standardized templates while wanting to hide irrelevant or consumer-focused built-in templates from employee views.
Administrators govern template visibility and access permissions using Microsoft Teams PowerShell through the CsTeamsTemplatePermissionPolicy cmdlets. Configuring template permission policies ensures employees build workspaces exclusively using sanctioned corporate blueprints matching enterprise governance standards.
Understanding Teams Template Permission Policy Architecture
The CsTeamsTemplatePermissionPolicy controls the availability of team creation templates across the organization:
- Template Scope: Microsoft Teams provides built-in first-party templates curated by Microsoft alongside custom organization-specific templates created by enterprise administrators.
- Policy Filtering (HiddenTemplates / ShownTemplates): Policies define lists of specific template IDs that are either hidden from or shown to target users. You can enforce a strict allow-list (showing only corporate-approved templates) or an exclusion list (hiding specific legacy templates).
- Departmental Scoping: Rather than applying a single monolithic template catalog tenant-wide, administrators can assign distinct policies to different departments—for example, granting medical staff access to healthcare templates while restricting retail staff to store operations templates.
Connecting to Microsoft Teams PowerShell
To configure and manage template permission policies, open an elevated PowerShell console and authenticate with Teams Administrator credentials:
# Install or update Microsoft Teams PowerShell module
Install-Module -Name MicrosoftTeams -Force -AllowClobber
# Authenticate to the corporate Teams tenant
Connect-MicrosoftTeams
Inspect existing template permission policies provisioned in the tenant:
# Retrieve current template permission policies
Get-CsTeamsTemplatePermissionPolicy | Format-Table Identity, Description
Tenants include a default Global policy that makes all templates available unless customized policies are created.
Discovering Available Team Template Identifiers
Before restricting or hiding templates, identify the unique template IDs of available Microsoft and custom corporate templates:
# Query available Microsoft Teams templates
Get-CsTeamTemplateList | Format-Table Id, DisplayName, Category
Common built-in template IDs include:
com.microsoft.teams.template.ManageAProject(Manage a Project)com.microsoft.teams.template.RetailFrontlineStore(Manage a Store)com.microsoft.teams.template.HealthcareWard(Hospital Ward)com.microsoft.teams.template.QualitySafety(Quality and Safety)
Custom templates developed in your tenant will display custom GUID identifiers.
Creating a Custom Policy Hiding Unapproved Templates
To prevent employees from selecting unapproved templates during team creation, create a dedicated policy specifying hidden template IDs:
# Create policy hiding specific built-in templates
New-CsTeamsTemplatePermissionPolicy `
-Identity "Corporate-Standard-Template-Policy" `
-Description "Hides consumer and non-sanctioned templates from standard staff" `
-HiddenTemplates @("com.microsoft.teams.template.RetailFrontlineStore", "com.microsoft.teams.template.HealthcareWard")
When assigned users click Create team > From a template in Microsoft Teams, the hidden templates are suppressed from the template gallery.
Creating a Scoped Policy for Departmental Blueprints
For specialized business divisions (such as Retail Store Operations), create a tailored policy that exclusively surfaces department-specific blueprints while hiding generic corporate templates:
# Create dedicated Retail Operations template policy
New-CsTeamsTemplatePermissionPolicy `
-Identity "Retail-Operations-Template-Policy" `
-Description "Template gallery policy for retail branch store managers" `
-HiddenTemplates @("com.microsoft.teams.template.HealthcareWard", "com.microsoft.teams.template.QualitySafety")
Modifying and Inspecting Policy Configurations
To inspect all configured parameters and active template exclusion lists on an existing policy:
# Inspect detailed policy parameters
Get-CsTeamsTemplatePermissionPolicy -Identity "Corporate-Standard-Template-Policy" | Format-List
To update the hidden template list on an existing policy without recreating the policy object:
# Update hidden templates list on existing policy
Set-CsTeamsTemplatePermissionPolicy `
-Identity "Corporate-Standard-Template-Policy" `
-HiddenTemplates @("com.microsoft.teams.template.RetailFrontlineStore", `
"com.microsoft.teams.template.HealthcareWard", `
"com.microsoft.teams.template.ManageAnEvent")
Assigning Template Permission Policies to Users and Groups
Use the Grant-CsTeamsTemplatePermissionPolicy cmdlet to assign policies to individual users or departmental groups.
Assign the policy to an individual team organizer:
# Assign policy to an individual user
Grant-CsTeamsTemplatePermissionPolicy -Identity "[email protected]" `
-PolicyName "Corporate-Standard-Template-Policy"
Assign the policy across all members of a department using attribute queries:
# Retrieve retail store managers and assign retail policy in bulk
$StoreManagers = Get-CsOnlineUser -Filter {Department -eq "Retail-Management"}
$StoreManagers | ForEach-Object {
Grant-CsTeamsTemplatePermissionPolicy -Identity $_.UserPrincipalName -PolicyName "Retail-Operations-Template-Policy"
}
To remove a custom policy and revert an account back to default Global tenant inheritance:
# Revert user to Global policy
Grant-CsTeamsTemplatePermissionPolicy -Identity "[email protected]" -PolicyName $Null
By enforcing clear template permission policies with CsTeamsTemplatePermissionPolicy, IT administrators prevent workspace sprawl while ensuring teams are structured according to corporate compliance baselines.