SharePoint 2013 PowerShell Commands

In the PowerShell SharePoint tutorial explains, various PowerShell commands to  Change Master Page for all sites in the collection, Set alternate CSS, Set a site logo using PowerShell in SharePoint, Set regional setting/locale using PowerShell in SharePoint and Set a theme using PowerShell in SharePoint.

You can also read PowerShell SharePoint Examples and PowerShell in SharePoint Online/2016/2013.

PowerShell is a command-line scripting tool that provides an administrator full access to applicable application programming interfaces (APIs), along with the ability to unlock the capability to interact directly with SharePoint 2010 Products to manipulate Web applications, site collections, sites, lists and much more.

So what’s a useful thing to do with PowerShell as a SharePoint brander or a front end developer? Well, there are a lot of different types of tasks you can use PowerShell to, for example populate a list with a large amount of objects when you need to performance test your Data View Web Part or if you need to apply a theme to let’s say some site in the structure including its subsites or if you need to batch update properties of a collection page layouts.

Maybe you see something that can be written more efficient or if you have some cool snippets of your own you like to share, please drop this in a comment. Take these snippets as they are, try them first in your developer or test environment and feel free to use them and modify in the way you want.

Running PowerShell scripts is easy and you will find many resources out there if you never used PowerShell before, when you know the basics it’s just to go ahead and try these out. This stuff is written for SharePoint 2010 but most of this can be used in SharePoint 2013 as it is.

Any PowerShell script, you can write, debug and test script using Windows PowerShell ISE and Visual Studio Code.

Change Master Page for all sites in the collection using PowerShell in SharePoint

In this example, we apply a customer master to all the sites in the site collection, this can be rewritten specifically for the SharePoint Foundation, where PowerShell is much useful for such a task.

In this snippet I have set V4.master, so have to change the name of the master page file if apply a custom master page.

# —– For publishing sites and non publishing sites
$site = Get-SPSite http://intranet
foreach ($web in $site.AllWebs) {
$web; $web.CustomMasterUrl = "/_catalogs/masterpage/V4.master";
$web.Update(); $web.CustomMasterUrl;
foreach ($web in $site.AllWebs) {
$web; $web.MasterUrl = "/_catalogs/masterpage/v4.master";
$web.Update(); $web.MasterUrl;
write-host "Complete! V4.master is now applied";

Set alternate CSS using PowerShell in SharePoint

In this way you can set a custom CSS file as an alternate CSS at the top site of your site collection, publishing subsites will inherit the alternate CSS by default.

$web = Get-SPWeb http://intranet
$web.AlternateCssUrl = "/Style Library/MyStyles/main.css"
$web.AllProperties["__InheritsAlternateCssUrl"] = $True

Set a site logo using PowerShell in SharePoint

With this one, you can associate a SharePoint site logo with all sites in the site collection by entering the URL to an image file.

(get-spsite http://intranet).AllWebs | foreach {
$_.SiteLogoUrl = "/Style%20Library/MyClient/Images/ClientLogo.png";

Set regional setting/locale using PowerShell in SharePoint

This one can be handy when you need to specify the way the site displays numbers, dates, and time. In this example I set locale to Swedish (1053).

$site = Get-SPSite http://intranet
foreach ($web in $site.AllWebs) {
$web; $web.Locale = 1053;
$web.Update(); $web.Locale;

Set a theme using PowerShell in SharePoint

This one will set a theme to all sites in the site collection. This script is originally written by MVP Yaroslav Pentsarskyy.

$SiteUrl = "http://intranet"
$NewTheme = "Azure"
# Loading Microsoft.SharePoint.PowerShell
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq ‘Microsoft.SharePoint.Powershell’}
if ($snapin -eq $null) {
Write-Host "Loading SharePoint Powershell Snapin"
Add-PSSnapin "Microsoft.SharePoint.Powershell"
# Setting site themes on sites and sub sites
$SPSite = Get-SPSite | Where-Object {$_.Url -eq $SiteUrl}
if($SPSite -ne $null)
$themes = [Microsoft.SharePoint.Utilities.ThmxTheme]::GetManagedThemes($SiteUrl);
foreach ($theme in $themes)
if ($theme.Name -eq $NewTheme)
foreach ($SPWeb in $SPSite.AllWebs)
$theme.ApplyTo($SPWeb, $true);
Write-Host "Set" $NewTheme "at :" $SPWeb.Title "(" $SPWeb.Url ")"
Write-Host "Themes updated at:" $SPSite.Url -foregroundcolor Green

If you’re a truly SharePoint Designer guy, why not use PowerShell to check if you allowed to do your branding stuff before fire it up…
Get-SPDesignerSettings -webapplication http://intranet

There’s lot of blogs about using PowerShell in SharePoint but here’s a pic of a few cool scripts that somehow are related to this topic.

N8Design Stefan Bauer – Hide fields from list forms using PowerShell

MSDN Samples Stefan Bauer – version cleanup in SharePoint

Gary Lapointe – Reset Theme

You may like following PowerShell tutorials:

Finally, we’d like to give thanks to MVP Cathy Dew for inspiring discussions about this topic; PowerShell from a brander’s perspective as well as he’d like to thanks Falak Mahmood for general discussions and suggestions for the use of PowerShell.

Donwload Hub site pdf

Download SharePoint Online Tutorial PDF FREE!

Get update on Webinars, video tutorials, training courses etc.