Add/Remove listview web part in publish site via powershell
2013-07-05 21:50
441 查看
1. Here is the code: Add WebPart in Publish Site
Example : AddWebPartPublish http://localhost "/Pages/Publish.aspx" "Shared Documents" "Header" "0"###########################################################################
# $siteUrl : The site url -Example: http://localhost #
# $pagePath: The page path #
# $listName: The name of list that should be added. -Example: Birthdays #
# $webpartZone: The zone in page - Example: "Header" #
# $index: The index of web part in the zone -Example: "0" #
###########################################################################
# Import the Microsoft.SharePoint.PowerShell if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.SharePoint.PowerShell } Add-PSSnapin System.Reflection -erroraction silentlyContinue function AddWebPartPublish($siteUrl, $pagePath, $listName, $webpartZone, $index) { $pageUrl = $siteUrl + $pagePath $spWeb = Get-SPWeb $siteUrl -ErrorAction Stop [Microsoft.SharePoint.Publishing.PublishingWeb]$pubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($spWeb); $allowunsafeupdates = $spWeb.AllowUnsafeUpdates $spWeb.AllowUnsafeUpdates = $true $page = $spWeb.GetFile($pageUrl); if ($page.Level -eq [Microsoft.SharePoint.SPFileLevel]::Checkout) { if ($page.CheckedOutBy.UserLogin -eq $spWeb.CurrentUser.UserLogin) { write-host "Page has already been checked out " } else { $SPWeb.CurrentUser.LoginName $page.UndoCheckOut() $page.CheckOut() write-host "Check out the page override" } } else { $page.CheckOut() write-host "Check out the page" } try{ #Initialise the Web part manager for the specified profile page. $spWebPartManager = $spWeb.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared) # Check list is exist or not foreach($list in $spWeb.Lists) { if($list.Tostring() -eq $listName) { write-host "The list named $list is existing" #$ListViewWebPart = New-Object Microsoft.SharePoint.WebPartPages.ListViewWebPart $ListViewWebPart = New-Object Microsoft.SharePoint.WebPartPages.XsltListViewWebPart $listViewWebPart.Title = $listName $ListViewWebPart.ListName = ($list.ID).ToString("B").ToUpper() #$ListViewWebPart.ChromeType = "none" $ListViewWebPart.ViewGuid = ($list.Views[0].ID).ToString("B").ToUpper() $spWebPartManager.AddWebPart($ListViewWebPart, $webpartZone, $index) $spWebPartManager.SaveChanges($ListViewWebPart) break; } } #Check to ensure the page is checked out by you, and if so, check it in if ($page.CheckedOutBy.UserLogin -eq $spWeb.CurrentUser.UserLogin) { $page.CheckIn("Page checked in automatically by PowerShell script") Write-Output "Page has been checked in" } $page.Publish("Published") Write-Output "Page has been published success" $pubWeb.Close() $spWeb.Update() if($flag -eq 0) { write-host "Not exist" } else { Write-Output "success" } } catch { write-host "(ERROR : "$_.Exception.Message")" throw } finally { $spWeb.Dispose() } }
2. Here is the code: Delete WebPart in Publish Site
Example : RemoveWebPart " http://localhost" "/Pages/Publish.aspx" "Shared Documents"###########################################################################
# $siteUrl : The site url -Example: http://localhost #
# $pagePath: The page path #
# $listName: The name of list that should be added. -Example: Birthdays #
###########################################################################
# Import the Microsoft.SharePoint.PowerShell if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) { Add-PSSnapin Microsoft.SharePoint.PowerShell } function RemoveWebPart($siteUrl, $pagePath, $name) { #$web = $site.OpenWeb("/Ops") # Check the parameter is null or not if($siteUrl.trim() -eq $null -or $name.trim() -eq $null -or $pagePath.trim() -eq $null) { write-host "The parameter is null" return } $pageUrl = $siteUrl + $pagePath $spWeb = Get-SPWeb $siteUrl -ErrorAction Stop [Microsoft.SharePoint.Publishing.PublishingWeb]$pubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($spWeb); $allowunsafeupdates = $spWeb.AllowUnsafeUpdates $spWeb.AllowUnsafeUpdates = $true $page = $spWeb.GetFile($pageUrl); if ($page.Level -eq [Microsoft.SharePoint.SPFileLevel]::Checkout) { if ($page.CheckedOutBy.UserLogin -eq $spWeb.CurrentUser.UserLogin) { write-host "Page has already been checked out " } else { $SPWeb.CurrentUser.LoginName $page.UndoCheckOut() $page.CheckOut() write-host "Check out the page override" } } else { $page.CheckOut() write-host "Check out the page" } try{ #Initialise the Web part manager for the specified profile page. $spWebPartManager = $spWeb.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared) $flag = 0 #Circle all the Webparts in the specified page foreach ($webpart in $spWebPartManager.WebParts) { #write-host $siteUrl +": Existing Web part - " + $webpart.Title + " : " + $webpart.ID if($webpart.Title -eq $name) { $spWebPartManager.DeleteWebPart($spWebPartManager.WebParts[$webpart.ID]) $spWebPartManager.SaveChanges($webpart) Write-Output "Delete the webpart" $flag = 1 break; } } #Check to ensure the page is checked out by you, and if so, check it in if ($page.CheckedOutBy.UserLogin -eq $spWeb.CurrentUser.UserLogin) { $page.CheckIn("Page checked in automatically by PowerShell script") Write-Output "Page has been checked in" } $page.Publish("Published") Write-Output "Page has been published success" $pubWeb.Close() $spWeb.Update() if($flag -eq 0) { write-host "Not exist" } else { Write-Output "success" } } catch { write-host "(ERROR : "$_.Exception.Message")" throw } finally { $spWeb.Dispose() } }
相关文章推荐
- Add/Remove listview web part in publish site via powershell
- Add custom and listview web part to a page in wiki page using powershell
- Add Script Editor and Content Editor Web Part via powershell
- Add custom and listview web part to wiki page using powershell
- Add or remove a Web Part
- SiteMap Controls: How to add a duplicate link in the web.sitemap
- SiteMap Controls: How to add a duplicate link in the web.sitemap
- Add/Delete ContentType in list via powershell
- How to: Add SharePoint 2010 Search Web Parts to Web Part Gallery for Upgraded Site Collections
- SharePoint At Work----Hyperlinks in the Data View Web Part
- How to add remove user (standard user/non-root) in Kali Linux?
- sharepoint 中添加webpart 报"Unable to add selected web part(s)....
- remove an add-in from MS Word
- Publish Web Site To IIS From VS
- ERROR J2EE HTTP0004 Internal error raised tyring to instantiate web-application: rhtest defined in web site OC4J 10g (10.1.3) De
- How to fix: Recieve error "Unable to display this Web Part" on Data Views after restoring site from backup
- The MagicAjax HttpModule is not included in web.config. Add [<httpModules><add name="MagicAjax" type
- "Suggested Web Parts" in SharePoint 2007 Web Part picker page.
- Using WebSocket in .NET 4.5 (Part 1)
- Use the Picture Library Slideshow Web Part in the SharePoint 2010