[Verified] Office 365: Retrieve hub sites and associated sites using PnP Powershell

3 comments

 4,267 total views,  28 views today

 

In this article, we will learn about how to retrieve hub sites and associated sites using PnP Powershell and Office 365 admin center URL or SharePoint admin center URL.

PnP PowerShell script to get all sites connected to a hub site:

  • Using PnP PowerShell get all associated or connected sites to a particular hub site.
  • Get a master report for all sites and their hub sites from the SharePoint online tenant.
CLS
$userName = "Global-sharepoint2019@globalsharepoint2019.onmicrosoft.com"
$passWord = "YourPassWord"
$encPassWord = convertto-securestring -String $passWord -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $userName, $encPassWord

Connect-PnPOnline -Url "https://globalsharepoint2019-admin.sharepoint.com/" -Credentials $cred

#Getting the hub site id for which we want to generate the report - those are connected to this hub site.
$hubSiteURL="https://globalsharepoint2019.sharepoint.com/sites/SPHubSite"
$hubSite = Get-PnPTenantSite $hubSiteURL  
$hubSiteId = $hubSite.HubSiteId
write-host " #####Generating sites connected a single hub site report######: " -BackgroundColor DarkGreen
write-host "Hub Site URL: " $hubSiteURL


$associatedSites = @()


#Get all sites associated to the hub site(in the above hub site)
$sitesTenant = Get-PnPTenantSite -Detailed 
$sitesTenant | select url | % {$oneSite = Get-PnPTenantSite $_.url 

  if($oneSite.hubsiteid -eq $hubSiteId)
  {
    
    write-host "Associated Site URL: " $oneSite.url

     $assocatedSiteObject = New-Object PSObject     
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -name "Hub Site URL" -value $hubSiteURL
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -name "Hub Site ID" -value $hubSiteId
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -Name "Associated Site URL" -value $oneSite.Url
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -name "Associated Site Status" -value $oneSite.Status
     

     #Add the object with property to an Array
     $associatedSites += $assocatedSiteObject

  }
}

#Export the site array collection to a CSV file
$associatedSites | Export-CSV "C:\Temp\GetAllSitesAssociatedInHubSites\SitesConnectedToSingleHubSiteReprot.csv" -NoTypeInformation  
write-host " #####Generating sites connected a single hub site report- ends here######: " -BackgroundColor DarkYellow

######The below script will list down all hub sites and their associated connected sites in the tenant.##################
write-host "------------------------------------------------------------------------------------------------------"

write-host " #####Generating master hub sites along with connected sites report for the tenant. ######:" -BackgroundColor DarkGreen

$hubSites=Get-PnPHubSite
$associatedSites = @()
foreach($oneHubSite in $hubSites)
{

   $test=$oneHubSite;
   write-host "Hub Site URL: " $oneHubSite.SiteUrl


   $hubSite = Get-PnPTenantSite $oneHubSite.SiteUrl;  
   $hubSiteId = $hubSite.HubSiteId


 


#Get all sites associated to the hub site(in the above hub site)
$sitesTenant = Get-PnPTenantSite -Detailed 
$sitesTenant | select url | % {$oneSite = Get-PnPTenantSite $_.url 

  if($oneSite.hubsiteid -eq $hubSiteId)
  {
    write-host "Associated Site URL: " $oneSite.url
    $assocatedSiteObject = New-Object PSObject
         
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -name "Hub Site URL" -value $oneHubSite.SiteUrl
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -name "Hub Site ID" -value $oneHubSite.ID
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -Name "Associated Site URL" -value $oneSite.Url
     $assocatedSiteObject | Add-Member -MemberType NoteProperty -name "Associated Site Status" -value $oneSite.Status
     

     #Add the object with property to an Array
     $associatedSites += $assocatedSiteObject

  }
}


}
#Export the site array collection to a CSV file
$associatedSites | Export-CSV "C:\Temp\GetAllSitesAssociatedInHubSites\SitesConnectedToHubSiteReprotForTenant.csv" -NoTypeInformation  
write-host "##### Generating master hub sites along with connected sites report for the tenant ends here ######:" -BackgroundColor DarkYellow

######The below script will list down all hub sites and their associated connected sites in the tenant - ends here##################

 

 

 

PnP PowerShell script to get all sites connected to hub site: Test

PnP PowerShell script to get all sites connected to hub site
PnP PowerShell script to get all sites connected to the hub site

Let’s see the exported hub sites report – how does it look like?

Master report for all hub sites in the SharePoint Online tenant:

Hub site report in csv using PnP PowerShell script

 

 

All associated sites connected to a single hub site report.

Hub site report in csv using PnP PowerShell script - connected to a single to hub site
PnP PowerShell script to get all sites connected to the hub site

View all sites that are connected to a hub site using SharePoint admin center URL:

We need to generate a view to listing down the hub site report using the hub site association.

Login to the SharePoint admin center URL.

Syntax:

https://tenant-admin.sharepoint.com

Example:

https://globalsharepoint2019-admin.sharepoint.com/

 

 

If we navigate to SharePoint online admin center URL, we will get the below SharePoint admin center page. Then need to click on the “Active Sites” link from the left-side panel.

SharePoint Admin center in SharePoint online hub site association
SharePoint Online hub site association

Then from the “Active sites” dashboard click on “Hub” -> Filter by Hub -> then select your hub site – this will list down all sites that are connected to that particular hub site.

For an example – I have selected my hub site “SP Hub Site”

Active sites report in SharePoint online for hub site association
SharePoint Online hub site association

 

 

Now – we can see all sites that are connected to the hub site “SP Hub Site”

Hub sites and associated sites dashboard in active sites report

Similarly, we can export this report in CSV file and we can filter that site report file from the local excel to have a list of all the sites that are part of the same Hub.

To do this we need to follow the below steps:

From the “Active sites” dashboard click on the “Export” button. This will export all SharePoint online sites in the CSV file to your local download folder.

Export active sites to csv in SharePoint online hub site association

 

 

We will get the active sites report as below – from there we can filter as per our need.

Exported active sites report in csv file

 

 

Summary:

Thus, in this article we have learned the below:

  • Get all sites associated with a SharePoint Online Hub Site – using SharePoint Online Admin center URL.
  • Get all sites associated with a SharePoint Online Hub Site using PnP PowerShell.
  • How to retrieve hub sites and associated sites using PnP Powershell.
  • How to use the Get-PnPTenantSite command.
  • Create a hub site in SharePoint Online.
  • How to use Get-PnPHubSite.
  • How to export the report in CSV file using the export-CSV command.

See Also:

Free download SharePoint Online & Office 365 Administration eBook(238 Pages)

Get the PDF eBook from here:




 

 
FREE DOWNLOAD

Send download link to:

Subscribe to get exclusive content and recommendations every month. You can unsubscribe anytime.