Upload Master Page to SharePoint using PowerShell

Requirement: We have a SharePoint 2013 master page from third-party consultants and would like to copy-apply the master page to SharePoint sites.

PowerShell script to upload Master page to SharePoint:

Have you ever created a master page in SharePoint and uploaded it to your sites? Wouldn’t it be nice if there was an easy way to upload your master page to SharePoint instead of manually doing it? Well, there is! This blog post will show you how to use PowerShell to upload your master page.

Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue

$WebURL = "https://intranet.crescent.com/"
$MasterPage = "Crescentv1.master"
$SourcePath ="D:\Branding\MasterPages\Crescentv1.master"

#Get the Web
$web = Get-SPWeb $WebURL

#Get the Target folder - Master page Gallery
$MasterPageList = $web.GetFolder("Master Page Gallery")

#Set the Target file for Master page
$TargetPath = $Web.Url + "/_catalogs/masterpage/Crescentv1.master"

#Get the Master page from local disk
$MasterPageFile = (Get-ChildItem $SourcePath).OpenRead()

 #Check if file exist already
 if ($Web.GetFile($TargetPath).Exists)
  {
    $Web.GetFile($TargetPath).recycle()
  }

#upload master page using powershell
$MasterPage = $MasterPageList.Files.Add($TargetPath,$MasterPageFile,$false)
$web.Update()

This script copies the master page to SharePoint from the local disk. Just wrap the code inside a loop to copy the master page to all sites. Once uploaded, we can Set the master page with another PowerShell script:  Change Master Page in SharePoint using PowerShell

Salaudeen Rajack

Salaudeen Rajack is a SharePoint Architect with Two decades of SharePoint Experience. He loves sharing his knowledge and experiences with the SharePoint community, through his real-world articles!

One thought on “Upload Master Page to SharePoint using PowerShell

  • The master page list can be retrieved with

    $MasterPagelist = ($web).Lists |? {$_.Title -eq “Master Page Gallery”}

    Your way not works for me (Sharepoint 2013)

    Reply

Leave a Reply