Forum Discussion
How to loop through the Sub site lists and list items using PnP PowerShell
- Jul 03, 2023
Hello Ganesh955,
To loop through the lists and list items in the subsites using PnP PowerShell, you can try to modify your code like this:$SiteColl = "https://SharePoint-Contose/sites/Test"
Connect-PnPOnline -Url $SiteColl -UseWebLogin
$WebsCollection = Get-PnPSubWeb# Iterate through each subsite
ForEach ($Web in $WebsCollection) {
Write-Host "Working On: " $Web.Url -BackgroundColor DarkGreen# Connect to the current subsite
Connect-PnPOnline -Url $Web.Url -UseWebLogin# Get the lists/libraries in the current subsite
$PnPListColls = Get-PnPList# Loop through each list/library in the current subsite
ForEach ($List in $PnPListColls) {
Write-Host "List Title: " $List.Title# Get the items in the current list/library
$ListItems = Get-PnPListItem -List $List.Title# Loop through each item in the current list/library
ForEach ($Item in $ListItems) {
Write-Host "Item Title: " $Item.FieldValues.Title
}
}
}
This should loop through the sub-sites, retrieve the lists/libraries, and then loop through the items in each list/library.
Hope it helps.
iIf you think my answer helped you, you can click on Mark as best response.
Kindest regards
Leon Pavesic
Hello Ganesh955,
To loop through the lists and list items in the subsites using PnP PowerShell, you can try to modify your code like this:
$SiteColl = "https://SharePoint-Contose/sites/Test"
Connect-PnPOnline -Url $SiteColl -UseWebLogin
$WebsCollection = Get-PnPSubWeb
# Iterate through each subsite
ForEach ($Web in $WebsCollection) {
Write-Host "Working On: " $Web.Url -BackgroundColor DarkGreen
# Connect to the current subsite
Connect-PnPOnline -Url $Web.Url -UseWebLogin
# Get the lists/libraries in the current subsite
$PnPListColls = Get-PnPList
# Loop through each list/library in the current subsite
ForEach ($List in $PnPListColls) {
Write-Host "List Title: " $List.Title
# Get the items in the current list/library
$ListItems = Get-PnPListItem -List $List.Title
# Loop through each item in the current list/library
ForEach ($Item in $ListItems) {
Write-Host "Item Title: " $Item.FieldValues.Title
}
}
}
This should loop through the sub-sites, retrieve the lists/libraries, and then loop through the items in each list/library.
Hope it helps.
iIf you think my answer helped you, you can click on Mark as best response.
Kindest regards
Leon Pavesic