#Set script variables $AppRegistrationId = "7d2f997a-6937-4239-a041-856675c5b8ec" $SiteURL = "https://6f3jc6.sharepoint.com/teams/AccountsPayable/" $ListName = "Documents" #Connect to the SharePoint site and set up the csv to be exported Connect-PnPOnline -Url $SiteURL -Interactive -ClientId $AppRegistrationId Set-PnPTenantSite -Url $SiteURL -DenyAddAndCustomizePages:$false $SiteName = Get-PnPWeb $ReportDate = Get-Date -Format "yyyy-MM-dd" $ReportOutFile = "./" + $SiteName.Title + " - " + $ListName + " - Version Report - " + $ReportDate + ".csv" "DocName,DocURL,DocID,DocSize(Bytes),VersionID,VersionNumber,VersionCreated,VersionCreatedBy,VersionSize(Bytes)" | Out-File -FilePath $ReportOutFile #Fetch your files and versions and export them to your report $Files = Get-PnPListItem -List $ListName | Where-Object {$_.FileSystemObjectType -ne "Folder"} ForEach ($File in $Files){ $Versions = Get-PnPFileVersion -Url $File.FieldValues.FileRef foreach ($Version in $Versions){ $VersionInfo = $File.FieldValues.FileLeafRef + "," + $File.FieldValues.FileRef + "," + $File.Id + "," + $File.FieldValues.File_x0020_Size + "," + $Version.Id + "," + $Version.VersionLabel + "," + $Version.Created + "," + $Version.CreatedBy.Email + "," + $Version.Size $VersionInfo | Out-File -FilePath $ReportOutFile -Append } }