Based on your description, I understand that you want to delete all unique permissions for files and folder in a document library.
1.Remove unique permissions for all folders in a document library.
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/2018"
$FolderURL = "/Shared Documents" #Document Library Site Relative URL
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive #-Credentials (Get-Credential)
#Function to reset permissions of all Sub-Folders
Function Reset-SubFolderPermissions($FolderURL)
{
#Get all sub-folders of the Folder - Exclude system folders
$SubFolders = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderURL -ItemType Folder | Where {$_.Name -ne "Forms" -and $_.Name -ne "Document"}
#Loop through each sub-folder
ForEach($SubFolder in $SubFolders)
{
$SubFolderURL = $FolderUrl+"/"+$SubFolder.Name
Write-host -ForegroundColor Green "Processing Folder '$($SubFolder.Name)' at $SubFolderURL"
#Get the Folder Object - with HasUniqueAssignments and ParentList properties
$Folder = Get-PnPFolder -Url $SubFolderURL -Includes ListItemAllFields.HasUniqueRoleAssignments, ListItemAllFields.ParentList, ListItemAllFields.ID
#Get the List Item of the Folder
$FolderItem = $Folder.ListItemAllFields
#Check if the Folder has unique permissions
If($FolderItem.HasUniqueRoleAssignments)
{
#Reset permission inheritance
Set-PnPListItemPermission -List $FolderItem.ParentList -Identity $FolderItem.ID -InheritPermissions
Write-host "`tUnique Permissions are removed from the Folder!"
}
#Call the function recursively
Reset-SubFolderPermissions $SubFolderURL
}
}
#Call the function
Reset-SubFolderPermissions $FolderURL
2.Remove unique permissions for all files in a document library.
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName = "Documents"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get all list items in batches
$ListItems = Get-PnPListItem -List $ListName -PageSize 500
#Iterate through each list item
ForEach($ListItem in $ListItems)
{
#Check if the Item has unique permissions
$HasUniquePermissions = Get-PnPProperty -ClientObject $ListItem -Property "HasUniqueRoleAssignments"
If($HasUniquePermissions)
{
$Msg = "Deleting Unique Permissions on {0} '{1}' at {2} " -f $ListItem.FileSystemObjectType,$ListItem.FieldValues["FileLeafRef"],$ListItem.FieldValues["FileRef"]
Write-host $Msg
#Delete unique permissions on the list item
Set-PnPListItemPermission -List $ListName -Identity $ListItem.ID -InheritPermissions
}
}
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
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.