Hello @Mukherjee, Nilanjan ,
Welcome to Q&A Forum!
Please run the following PowerShell script as an admin:
$Cred = Get-Credential
#Set Variables
$SiteURL = "https://crescenttech.sharepoint.com/sites/sitename"
$ReportOutput = "C:\Temp\FilesReport.csv"
#Connect to PNP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
#Delete the Output report file if exists
If (Test-Path $ReportOutput) { Remove-Item $ReportOutput}
$DocumentsData = @()
#Get all subsites
$Subsites =Get-PnPSubWebs -Recurse
#Get all document libraries - Exclude Hidden Libraries
$DocumentLibraries = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101 -and $_.Hidden -eq $false} #Or $_.BaseType -eq "DocumentLibrary"
#$DocumentLibraries | Select Title, DefaultViewURL, ItemCount
Foreach ($DocLib in $DocumentLibraries)
{
$Files = Get-PnPListItem -List $DocLib.Title -PageSize 500 | Where {$_["FileLeafRef"] -like "*.*"}
#Iterate through each item
Foreach ($File in $Files)
{
$DocumentsData += New-Object PSObject -Property @{
FileName = $File.FieldValues['FileLeafRef']
FileURL = $File.FieldValues['FileRef']
SiteURL = $SiteURL
}
}
}
ForEach($Subsite in $Subsites)
{
$FinalSubsiteurl = $Subsite.Url
Connect-PnPOnline -Url $FinalSubsiteurl -Credentials $Cred
#Get all document libraries - Exclude Hidden Libraries
$SubDocumentLibraries = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101 -and $_.Hidden -eq $false}
Foreach ($SubDocLib in $SubDocumentLibraries)
{
$Files = Get-PnPListItem -List $SubDocLib.Title -PageSize 500 | Where {$_["FileLeafRef"] -like "*.*"}
#Iterate through each item
Foreach ($File in $Files)
{
$DocumentsData += New-Object PSObject -Property @{
FileName = $File.FieldValues['FileLeafRef']
FileURL = $File.FieldValues['FileRef']
SiteURL = $FinalSubsiteurl
}
}
}
}
#Export the results to CSV
$DocumentsData | Export-Csv -Path $ReportOutput -NoTypeInformation
Write-host "Document Library Inventory Exported to CSV Successfully!"
Thanks,
Echo Du
========================
Updated Answer
======================
Hi @Mukherjee, Nilanjan ,
You can execute the following command script as an admin:
#Set Variables
$SiteURL = "https://crescenttech.sharepoint.com/sites/sitename"
$ReportOutput = "C:\Temp\FilesReport.csv"
#Connect to PNP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Delete the Output report file if exists
If (Test-Path $ReportOutput) { Remove-Item $ReportOutput}
$DocumentsData = @()
#Get all subsites
$Subsites =Get-PnPSubWebs -Recurse
#Get all document libraries - Exclude Hidden Libraries
$DocumentLibraries = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101 -and $_.Hidden -eq $false} #Or $_.BaseType -eq "DocumentLibrary"
#$DocumentLibraries | Select Title, DefaultViewURL, ItemCount
Foreach ($DocLib in $DocumentLibraries)
{
$Files = Get-PnPListItem -List $DocLib.Title -PageSize 500 | Where {$_["FileLeafRef"] -like "*.*"}
#Iterate through each item
Foreach ($File in $Files)
{
$DocumentsData += New-Object PSObject -Property @{
FileName = $File.FieldValues['FileLeafRef']
FileURL = $File.FieldValues['FileRef']
SiteURL = $SiteURL
}
}
}
ForEach($Subsite in $Subsites)
{
$FinalSubsiteurl = $Subsite.Url
Connect-PnPOnline -Url $FinalSubsiteurl -Interactive
#Get all document libraries - Exclude Hidden Libraries
$SubDocumentLibraries = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101 -and $_.Hidden -eq $false}
Foreach ($SubDocLib in $SubDocumentLibraries)
{
$Files = Get-PnPListItem -List $SubDocLib.Title -PageSize 500 | Where {$_["FileLeafRef"] -like "*.*"}
#Iterate through each item
Foreach ($File in $Files)
{
$DocumentsData += New-Object PSObject -Property @{
FileName = $File.FieldValues['FileLeafRef']
FileURL = $File.FieldValues['FileRef']
SiteURL = $FinalSubsiteurl
}
}
}
}
#Export the results to CSV
$DocumentsData | Export-Csv -Path $ReportOutput -NoTypeInformation
Write-host "Document Library Inventory Exported to CSV Successfully!"
Thanks,
Echo Du
===============================
If an Answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.