#Set script variables $AppRegistrationId = "7d2f997a-6937-4239-a041-856675c5b8ec" $SiteURL = "https://6f3jc6.sharepoint.com/teams/AccountsPayable/" $ReportOutFile = "./Accounts Payable - Documents - Versions to Delete.csv" #Connect to site and prep deletion report Connect-PnPOnline -Url $SiteURL -Interactive -ClientId $AppRegistrationId $SiteName = Get-PnPWeb $ReportDate = Get-Date -Format "yyyy-MM-dd" $DeletionOutFile = "./" + $SiteName.Title + " - " + $ListName + " - Version Deletion Report - " + $ReportDate + ".csv" "DocName,DocURL,DocID,DocSize(Bytes),VersionID,VersionNumber,VersionCreated,VersionCreatedBy,VersionSize(Bytes),DeletedDate" | Out-File -FilePath $DeletionOutFile #Import items for deletion $VersionsToDelete = Import-Csv -Path $ReportOutFile #Delete all imported items & report on the deletion date and time ForEach($Item in $VersionsToDelete){ Remove-PnPFileVersion -Url $Item.DocURL -Identity $Item.VersionID -Recycle:$false -Force $DeletedTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $DeletionInfo = $item.DocName + "," + $Item.DocURL + "," + $Item.DocID + "," + $File.FieldValues.File_x0020_Size + "," + $Item.VersionID + "," + $Item.VersionNumber + "," + $Item.VersionCreated + "," + $Item.VersionCreatedBy + "," + $Version.Size + "," + $DeletedTime $DeletionInfo | Out-File -FilePath $DeletionOutFile -Append }