Iterating Through Site Collections in a Tenancy using PnP PowerShell

Regular Contributor

Does anyone know how I can Iterate through a series of Site Collections in a Office 365 tenancy using PnP PowerShell ?


I can get a series of Site Collections using :-


$SiteCollections = Get-PnPTenantSite


 Now I want to iterate through $SIteCollections printing out the title and URL.

6 Replies

you can do something like

$sites = Get-SPOSite -Limit all -Detailed | Out-GridView -Title "Select site collections " -PassThru;

foreach($site in $sites)

{ do stuff



Hi Dean


Does this work with PnP PowerShell or does this work with CSOM only ?





best response confirmed by Nigel Price (Regular Contributor)

Hi @Nigel Price,


I would go for something like this to list all subwebs for each site collection:


$cred = Get-Credential

Connect-PnPOnline "" -Credentials $cred
$SiteCollections = Get-PnPTenantSite
foreach ($SiteCollection in $SiteCollections)
   Connect-PnPOnline -Url $SiteCollection.Url -Credentials $cred


@Pieter Veenstra Is there a way to iterate all subwebs of a subweb using PNP? My foreach loop is not going deeper than the initial subweb.


What's up @Dean Gross!