Get Web Parts In A Site Collection

Create a ps1 extension file and save it in your local path.

Change the highlighted part with your site collection url.

 

  1. function EnumAllWebPartsOfSiteCollection($Url) {  
  2.     $site = new - object Microsoft.SharePoint.SPSite $Url  
  3.     $allFiles = @()  
  4.     foreach($web in $site.AllWebs) {  
  5.         Write - Host "Processing Web:"  
  6.         $web.Url - NoNewLine  
  7.         if ([Microsoft.SharePoint.Publishing.PublishingWeb]::IsPublishingWeb($web)) {  
  8.             $pWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)  
  9.             $pages = $pWeb.PagesList  
  10.             foreach($item in $pages.Items) {  
  11.                 $allFiles += $item.File  
  12.             }  
  13.         }  
  14.         $pages = $null  
  15.         $pages = $web.Lists["Site Pages"]  
  16.         if ($pages) {  
  17.             foreach($item in $pages.Items) {  
  18.                 $allFiles += $item.File  
  19.             }  
  20.         }  
  21.         foreach($file in $web.Files) {  
  22.             $allFiles += $file  
  23.         }  
  24.         $web.Dispose()  
  25.         Write - Host " - completed"  
  26.     }  
  27.     foreach($file in $allFiles) {  
  28.         $fileUrl = $Url + $file.ServerRelativeUrl  
  29.         $manager = $file.GetLimitedWebPartManager([System.Web.UI.WebControls.Webparts.PersonalizationScope]::Shared);  
  30.         $wps = $manager.webparts  
  31.         $manager.Dispose()  
  32.         $wps | select - object @ {  
  33.             Expression = {  
  34.                 $file.Web.Url  
  35.             };  
  36.             Label = "Web URL"  
  37.         }, @ {  
  38.             Expression = {  
  39.                 $fileUrl  
  40.             };  
  41.             Label = "Page URL"  
  42.         }, DisplayTitle, IsVisible, @ {  
  43.             Expression = {  
  44.                 $_.GetType().ToString()  
  45.             };  
  46.             Label = "Type"  
  47.         }  
  48.     }  
  49.     $site.Dispose()  
  50. }  
  51. $row = EnumAllWebPartsOfSiteCollection('http://hvsp01:31300/sites/Test')  
  52. $row | Out - GridView  

 

Open Management Shell as an administrator.

Run the PS script using the path along with the file name in the management shell.

Here is the required output.

Ebook Download
View all
Learn
View all