Set PageLayouts and Site Templates Settings in SharePoint 2013 using PowerShell

Sathish Nadarajan
 
Solution Architect
March 28, 2015
 
Rate this article
 
Views
14966

In this article, let us see, how to change the PageLayouts and SiteTemplates settings in SharePoint 2013 using PowerShell.

Before diving into the PowerShell, let us see how to change them using the UI.

1. Go to the Site Settings

image

2. Click on the “Page Layouts and Site Templates”

image

3. Here, you can select any of the Radio Buttons based on the requirement.

4. In my case, I want to select

a. Subsites can use any site templates

b. Pages in the site can use any layout

For that, I was about to give a PowerShell Script as a deployment package.

The script is a very much straight forward one.

 $web = Get-SPWeb "http://c4968397007:1000" 
 
 
 if ([Microsoft.SharePoint.Publishing.PublishingWeb]::IsPublishingWeb($web)) 
 {
     $spPub = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)
     $spPub.AllowAllPageLayouts($false)
     $spPub.Update()
 
 }
 

In the same manner, to update the WebTemplates property use the below.

 $spPub.AllowAllWebTemplates($false)

In case, if we want to have “SubSites can only use the Following Site Templates”, then the code will be like below.

 $templateNamesToKeep = "STS#0","PROJECTSITE#0","BLOG#0" 
 
 Start-SPAssignment -Global 
 $web = Get-SPWeb <URL of site> 
 
 # get the existing web templates from the site that will be filtered down 
 # 1033 is the locale id for English US (en-us), be sure to change to your locale 
 $existingWebTemplates = $web.GetAvailableWebTemplates(1033) 
 $newWebTemplates = New-Object "System.Collections.ObjectModel.Collection[Microsoft.SharePoint.SPWebTemplate]" 
 
 # filter existing web templates and only keep if in the list of template names to keep 
 $newWebTemplates = $existingWebTemplates | Where-Object {$_.name -in $templateNamesToKeep} 
 $web.SetAvailableWebTemplates($newWebTemplates, 1033) 
 $web.Update() 
 
 Stop-SPAssignment -Global  
 

All the settings revolving around this page would be managed by the above piece of scripts with a minimal modifications. Hope this will help for the Administrators much.

Happy Coding.

Sathish Nadarajan.

Author Info

Sathish Nadarajan
 
Solution Architect
 
Rate this article
 
Sathish is a Microsoft MVP for SharePoint (Office Servers and Services) having 15+ years of experience in Microsoft Technologies. He holds a Masters Degree in Computer Aided Design and Business ...read more
 

Leave a comment