Update Web Part on a Page Using Powershell in SharePoint 2010

Tags: SharePoint 2010, Powershell, WebPart

Thanks to Kent Del Castillo

$site = new-object Microsoft.SharePoint.SPSite(“http://your_site”)
foreach($web in $site.AllWebs)
{
    #Make sure you specify which page needs changes
    $page = $web.GetFile(“default.aspx”)
    $page.CheckOut()
    $wpm = $web.GetLimitedWebPartManager($page.Url, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
  #$wpm.WebParts | ft
  $wp = $wpm.WebParts | Where-Object { $_.Title -eq “Page Tabs” }
  #$wp.ZoneID | ft
  $wp.ZoneID = “Header”
  $wpm.SaveChanges($wp)
  $page.CheckIn(“Update via PowerShell”,[Microsoft.SharePoint.SPCheckinType]::MajorCheckIn)
  $wp.ZoneID | ft
}
$web.Close()
$site.Close()

//