Get all sites associated with a SharePoint Online Hub Site

Connect-PnPOnline -Url https://[tenant]

# get the hub site id
$hubSite = Get-PnPTenantSite "https://[tenant]"
$hubSiteId = $hubSite.HubSiteId

# get all sites associated to the hub
$sites = Get-PnPTenantSite -Detailed
$sites | select url | % { 
  $s = Get-PnPTenantSite $_.url 
  if($s.hubsiteid -eq $hubSiteId){
    write-host $s.url

I couldn’t get the HubSiteId through normal iterating over the $sites collection. So I ended up getting the sites explicitly.

If you found a simpler approach, let me know!

Leave a Reply