Check Permissions Status for every item in SharePoint Online List

PowerShell For SharePoint Online SharePoint Online

Πολλές φορές είναι αναγκαίο να εντοπίσουμε αν έχει σπάσει το inheritance σε μια library αν τα items εξακολουθούν να έχουν unique permissions ή αν κληρονομούν από το site permissions.

Οπως προφανές καταλαβαίνετε σε μια λίστα με χιλιάδες items αυτό είναι απίθανο να γίνει με μη αυτοματοποιημένο τρόπο

Για το λόγο αυτό θα σας δείξω πως με τη χρήση powershell έχουμε μια συνολική εικόνα για όλα τα items μιας λίστας και τα Permissions Που έχουν το καθένα ξεχωριστά

Για να μπορέσω να δω το item και τα permission από user interface θα πρέπει να επιλέξω το item

Έπειτα από το advanced

και τελικά έχω τη λίστα με τα Permissions οπότε μπορώ να καταλάβω εάν έχει σπάσει η κληρονομικότητα ή αν κληρονομεί από το γονέα permissions

Αυτή η διαδικασία θα πρέπει να γίνει για κάθε item κάτι που είναι σχεδόν αδύνατο σε λίστες με πάρα πολλά items

Αυτή η διαδικασία μπορεί να γίνει πολύ εύκολα με τη χρήση powerhell και να έχω τα αποτελέσματα από SharePoint Shell

Εκτελώ τον παρακάτω κώδικα και ;eχω

#Δήλωση Μεταβλητών
$Site = "https://mydomain.sharepoint.com"
$Name = "CustomList"
   
#Σύνδεση με SharePoint Online
Connect-PnPOnline -Url $Site -UseWebLogin
 
#Βρισκει τα items και κοιτάει τα permissions
$Items = Get-PnPListItem -List $Name -PageSize 100
ForEach($Item in $Items)
{
    $HasUniquePermissions = Get-PnPProperty -ClientObject $Item -Property "HasUniqueRoleAssignments"
    If($HasUniquePermissions)
    {
        Write-Host -f Blue "List Item '$($Item["Title"])'  has Unique Permissions"
    }
    Else
    {
        Write-Host -f Red "List Item '$($Item["Title"])' is inhering Permissions"
    }   
}

και τελικά έχω το αποτέλεσμα