SharePoint: Como aplicar una página maestra a un sitio y sus subsitios con Power Shell!

En esta ocasión os dejo un script PowerShell que permite aplicar una página maestra a un sitio y todos sus subsitios de forma recursiva por medio de PowerShell. Espero que os sea de utilidad:

   1: If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) 

   2: { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell }

   3:  

   4: #Hacemos un buen uso de PowerShell par ano penalizar el rendimiento

   5: $host.Runspace.ThreadOptions = "ReuseThread"

   6:  

   7: #Definición de la función para aplicar la página maestra a cada sitio de la colección

   8: function Aplicar-MasterPageSitios

   9: {    

  10:     $spSite = Get-SPSite $sSiteUrl    

  11:     $spsubWebs = $spSite.AllWebs    

  12:     foreach($spsubWeb in $spsubWebs)

  13:     {

  14:         Write-Host "Aplicando página maestra norbert.master a ($($spsubWeb.Url))" -foregroundcolor green

  15:         $spsubWeb.MasterUrl= $sMasterUrl

  16:         $spsubWeb.Update()

  17:     }     

  18:     $spSite.Dispose() 

  19: }

  20:  

  21: Start-SPAssignment –Global

  22: #Desaplicamos la página maestra

  23: $sSiteUrl="http://<Sitio_SharePoint>/"

  24: $sMasterUrl="/_catalogs/masterpage/<MyPaginaMaestra>.master"

  25: Aplicar-MasterPageSitios

  26:  

  27: Stop-SPAssignment –Global