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

PowerShell script to upload Master page to SharePoint:

Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue

$WebURL = ""
$MasterPage = "Crescentv1.master"
$SourcePath ="D:BrandingMasterPagesCrescentv1.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)

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

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

Source link