SharePoint Online: PowerShell kullanarak Belge Kitaplığındaki Tüm Klasörlerden Benzersiz İzinleri Kaldırma


Gereksinim:SharePoint Online belge kitaplığındaki tüm klasörlerden-alt klasörlerden benzersiz izinleri kaldırın.

SharePoint Online'da Bir Klasörün Benzersiz İzinleri Nasıl Silinir?

SharePoint Online belge kitaplıkları genellikle klasörlerin ve dosyaların izinlerini üst klasörden veya belge kitaplığından devraldığı hiyerarşik bir yapıya sahiptir. Ancak bazı durumlarda belirli klasörler için benzersiz izinler ayarlanabilir ve bu da kitaplık genelinde tutarsız erişim düzeylerine yol açabilir. Her klasör için benzersiz izinleri yönetmek, zaman alıcı ve sıkıcı bir iş olabilir. Şimdi PowerShell kullanarak SharePoint Online belge kitaplığındaki tüm klasörlerden benzersiz izinlerin nasıl kaldırılacağını inceleyelim.

Bu blog yazısında, SharePoint Online belge kitaplığındaki tüm klasörlerden benzersiz izinleri kaldırma sürecinde size yol göstereceğiz. Her klasör için izinleri manuel olarak ayarlamak zorunda kalmadan, bir belge kitaplığının tüm klasörlerine orijinal izinleri geri yüklemek istiyorsanız bu yararlı olabilir.

SharePoint Çevrimiçi Klasöründen benzersiz izinleri kaldırmak için şu adımları izleyin:

  1. Hedef klasörün bulunduğu SharePoint Online belge kitaplığınıza gidin.
  2. Klasör'e sağ tıklayın ve içerik menüsünden "Ayrıntılar"ı seçin. Bu, ayrıntılar bölmesini açar, "Erişimi Yönet" ve ardından "Gelişmiş" bağlantılara tıklayın. Bu sizi “Gelişmiş İzinler” sayfasına götürür.
  3. Klasör benzersiz izinler kullanıyorsa "Bu klasörün benzersiz izinleri var" mesajını alırsınız. İleti. Şimdi şeritte “Benzersiz İzinleri Sil” düğmesine tıklayın ve şu istemi onaylayın: “İzinleri ana klasörden veya belge kitaplığından devralmak üzeresiniz. Tüm özel izinler kaybolacak."
  4. Bu, klasörün tüm benzersiz izinlerini kaldırır ve ana nesneden devralır.

SharePoint Online: Bir Klasörün Benzersiz İzinlerini Kaldırmak için PowerShell

SharePoint Online'daki bir klasördeki benzersiz izinleri silmek için PowerShell'i burada bulabilirsiniz:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$FolderServerRelativeUrl= "/Sites/Marketing/Shared Documents/2015"
 
Try {
    #Get Credentials to connect
    $Cred= Get-Credential
 
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
   
    #Get the web from URL
    $Web = $Ctx.web
    $Ctx.Load($Web)
    $Ctx.executeQuery()
 
    #Get the Folder object by Server Relative URL
    $Folder = $Web.GetFolderByServerRelativeUrl($FolderServerRelativeUrl)
    $Ctx.Load($Folder)
    $Ctx.ExecuteQuery() 
    
    #Reset Folder Permissions
    $Folder.ListItemAllFields.ResetRoleInheritance()
    $Ctx.ExecuteQuery()     
    Write-host -f Green "Folder's Unique Permissions are Removed!"
}
Catch {
    write-host -f Red "Error Resetting Folder Permissions!" $_.Exception.Message
}

Bu, varsayılan mirası geri yükleyecek ve tüm kullanıcılar için tutarlı bir erişim düzeyi sağlayacaktır.

Belge Kitaplığındaki Tüm Klasörlerin Benzersiz İzinlerini Silmek için PowerShell

Bu sefer bir kütüphanedeki tüm klasörlerin benzersiz izinlerini silelim.


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Function to Reset Permissions of all Sub-folders in a Folder
Function Reset-SPOSubFolderPermissions([Microsoft.SharePoint.Client.Folder]$Folder)
{
    Try {
        #Get all Sub Folders
        $Ctx.Load($Folder.Folders)
        $Ctx.ExecuteQuery()
 
        #Iterate through each sub-folder of the folder
        Foreach ($Folder in $Folder.Folders | Where {$_.Name -ne "Forms" -and $_.Name -ne "Document"})
        {
            Write-host "Processing Folder:"$Folder.ServerRelativeUrl

            #Get the "Has Unique Permissions" Property
            $Folder.ListItemAllFields.Retrieve("HasUniqueRoleAssignments")
            $Ctx.ExecuteQuery()
  
            If($Folder.ListItemAllFields.HasUniqueRoleAssignments -eq $True)
            {
                #Reset Folder Permissions
                $Folder.ListItemAllFields.ResetRoleInheritance()
                $Ctx.ExecuteQuery()
                Write-host -f Green "`tFolder's Unique Permissions are Removed!"
            }

            #Call the function recursively
            Reset-SPOSubFolderPermissions $Folder
        }
    }
    Catch {
        write-host -f Red "Error Resetting Folder Permissions!" $_.Exception.Message
    }
}
 
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName = "Documents"
 
#Get Credentials to connect
$Cred= Get-Credential
 
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
#Get the Library
$List = $Ctx.web.Lists.GetByTitle($ListName)
$Ctx.Load($List.RootFolder)
$Ctx.ExecuteQuery()
 
#call the function to reset permissions of all folders of the document library
Reset-SPOSubFolderPermissions $List.RootFolder

Çok sayıda klasörün izinlerini hızlı bir şekilde sıfırlamanız gerekiyorsa bu kullanışlı bir komut dosyası olabilir.

Bir Klasörün Benzersiz İzinlerini Silmek için PnP PowerShell

SharePoint Online'daki bir klasörün benzersiz izinlerini silmek için PnP PowerShell'i kullanalım.


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$FolderURL = "/Documents/2015"

#Connect to the Site
Connect-PnPOnline -URL $SiteURL -Interactive

#Get the Folder - with HasUniqueAssignments and ParentList properties
$Folder = Get-PnPFolder -Url $FolderURL -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 "Unique Permissions are removed from the Folder!"
}

Belge Kitaplığındaki Tüm Klasörlerden Benzersiz İzinleri Silme


#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

Kapanıyor

Sonuç olarak, SharePoint Online belge kitaplığındaki tüm klasörlerden benzersiz izinlerin kaldırılması, zaman alıcı ve tekrarlanan bir görev olabilir. Ancak PowerShell kullanılarak süreç otomatikleştirilebilir, böylece zamandan ve emekten tasarruf sağlanır. Bu betiği çalıştırarak, belge kitaplığındaki tüm klasörlerin benzersiz izinleri kaldırılabilir ve üst siteden varsayılan miras geri yüklenebilir. Bu, tutarlı bir erişim düzeyi sağlar ve istenmeyen güvenlik ihlalleri riskini azaltır. Yöneticiler makalede özetlenen adımları izleyerek, SharePoint Online belge kitaplıklarındaki tüm klasörlerdeki benzersiz izinleri hızlı ve etkili bir şekilde kaldırabilir.

İlgili Mesajlar:

  • SharePoint Online: PowerShell Kullanarak Listedeki Tüm Öğeler İçin Benzersiz İzinleri Silme
  • SharePoint Online: PowerShell Kullanarak Bir Listedeki Benzersiz İzinleri Silme ve Devralmayı Geri Yükleme
  • SharePoint Online: PowerShell Kullanarak Bir Alt Sitedeki Benzersiz İzinleri Silme
  • SharePoint Online: PowerShell kullanarak Site Koleksiyonundan Tüm Benzersiz İzinleri Silme

İlgili makaleler