Skip to content

Instantly share code, notes, and snippets.

@pstakuu
Last active August 19, 2022 16:37
Show Gist options
  • Select an option

  • Save pstakuu/d250cc88fc2d2c7b8c6e5f1aae1e48cd to your computer and use it in GitHub Desktop.

Select an option

Save pstakuu/d250cc88fc2d2c7b8c6e5f1aae1e48cd to your computer and use it in GitHub Desktop.
Get-SPOSpecificFolderStats
#Parameters
$SiteURL = "https://company.sharepoint.com"
Connect-PnPOnline $SiteURL -UseWebLogin
$FolderSiteRelativeURL = "/Shared Documents/EC/Projects"
$downloadPath = "C:\temp"
Function Get-SPOFolderStats
{
[cmdletbinding()]
param
(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)][Microsoft.SharePoint.Client.Folder]$Folder
)
Get-PnPProperty -ClientObject $Folder -Property ServerRelativeUrl, Folders | Out-Null
$Web = Get-PnPWeb -Includes ServerRelativeUrl
#$SiteRelativeUrl = $Folder.ServerRelativeUrl -replace "$($web.ServerRelativeUrl)", [string]::Empty
$SiteRelativeUrl = $Folder.ServerRelativeUrl.Substring($Folder.Context.Web.ServerRelativeUrl.Length)
[PSCustomObject] @{
Folder = $Folder.Name
Path = $Folder.ServerRelativeUrl
ItemCount = Get-PnPFolderItem -FolderSiteRelativeUrl $SiteRelativeUrl -ItemType File | Measure-Object | Select -ExpandProperty Count
SubFolderCount = Get-PnPFolderItem -FolderSiteRelativeUrl $SiteRelativeUrl -ItemType Folder | Measure-Object | Select -ExpandProperty Count
}
#Process Sub-folders
ForEach($SubFolder in $Folder.Folders)
{
Get-SPOFolderStats -Folder $SubFolder
}
}
$folder = Get-PnpFolder $FolderSiteRelativeURL
$folderStats = Get-SPOFolderStats -Folder $folder
$outputFile = Join-Path $downloadPath "$($folder.name)_stats.csv"
$folderStats | Export-csv $outputFile -NoTypeInformation
@pstakuu
Copy link
Author

pstakuu commented Aug 9, 2022

@pstakuu
Copy link
Author

pstakuu commented Aug 10, 2022

Update swapped these:

#$SiteRelativeUrl = $Folder.ServerRelativeUrl -replace "$($web.ServerRelativeUrl)", [string]::Empty
$SiteRelativeUrl = $Folder.ServerRelativeUrl.Substring($Folder.Context.Web.ServerRelativeUrl.Length)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment