PowerShell kullanarak SharePoint 2013/2016'daki Benzersiz İzinleri Silme (Bozuk Devralmayı Sıfırlama)
Çok sayıda SharePoint kitaplığı ve belgesinin özelleştirilmiş izinlerini sıfırlama gereksinimimiz var. Mirasın daha önce bozulduğu site/web/klasör/öğe düzeyi için izin mirasını sıfırlayabilir ve benzersiz izinleri silebiliriz. Örneğin bir kütüphane için:
- Kütüphanenize gidin, Kütüphane Ayarları'na tıklayın.
- Ayarlar sayfasında, kullanıcılar ve izinler altında "Bu belge kitaplığı için izinler" seçeneğine tıklayın
- Kalıtım grubundan şeritteki “Benzersiz İzinleri Sil” düğmesine tıklayın.
Site düzeyinde bunu Site ayarları >> Site İzinleri Bağlantısından yapmanız gerekir. Klasör/liste öğesi/dosya düzeyi için de aynısını şu şekilde yapabilirsiniz: Şeritteki "Paylaşılanlar" düğmesine tıklayın (aynısını öğelerin içerik menüsünden de alabilirsiniz) >> Gelişmiş >>'e tıklayın ve şuna tıklayın: “Benzersiz izinleri sil”.
İzin düzeyleri üst öğeden Devralınacak şekilde ayarlanır ve izin düzeyi değişiklikleri yansıtacak şekilde güncellenir. Peki!
Söylemeye gerek yok, benzersiz izinleri kaldırmak için her bir kitaplığı ve dosyayı tek tek almak sıkıcıdır; Bu PowerShell betiğini sihri gerçekleştirmek için yazdım! Web, liste, klasör ve liste öğesi düzeylerinde benzersiz izinleri silmek için PowerShell komut dosyalarımı burada bulabilirsiniz.
PowerShell kullanarak Devralmayı site düzeyinde sıfırlayın:
Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
#Variables for Web URL, List Name
$WebURL ="https://intranet.crescent.com/marketing"
#get the list object
$web = Get-SPWeb $WebURL
# Check if web has Unique permission - Root webs always uses Unique permission
if ( ($web.HasUniqueRoleAssignments) -and ($web.IsRootWeb -eq $false ) )
{
#Reset broken inheritance
$web.ResetRoleInheritance()
Write-host "Broken Inheritance Reset on web:" $web.URL
}
SharePoint bir listedeki bozuk izinleri sıfırladı:
Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
#Variables for Web URL, List Name
$WebURL ="https://intranet.crescent.com/marketing/"
$ListName ="Invoices"
#get the list object
$List = (Get-SPweb $WebURL).lists.TryGetList($ListName)
# If List Exists with Unique permission
if ( ($list -ne $null) -and ($list.HasUniqueRoleAssignments) )
{
#Reset broken list inheritance
$list.ResetRoleInheritance()
Write-host "Broken Inheritance Reset on List:" $list.Title
}
<#To Reset Folder level inheritance, Use:
foreach ($folder in $list.Folders)
{
if ($folder.HasUniqueRoleAssignments)
{
Write-Host "Resetting Folder inheritance at:" $folder.Url
$folder.ResetRoleInheritance()
$folder.Update()
}
}
#>
Tüm listelerdeki Benzersiz izinleri silin:
Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
#Variable for Web URL
$WebURL ="https://intranet.crescent.com/marketing/"
#get Web object
$Web = Get-SPWeb $WebURL
#Get Lists with Unique permissions - Exclude Hidden lists
$ListColl = $web.lists | Where-Object { ($_.HasUniqueRoleAssignments -eq $true) -and ($_.hidden -eq $false) }
#Enumerate through each list and reset permission inheritance
foreach($list in $ListColl) #if($list) #Exists
{
#Reset list inheritance
$list.ResetRoleInheritance()
Write-host "Broken Inheritance Reset on List:" $list.Title
}
Liste Öğelerine ilişkin benzersiz izinleri kaldırın:
Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
#Variables for Web URL, List Name
$WebURL ="https://intranet.crescent.com/marketing/"
$ListName ="Invoices"
#Get the list items with Unique permissions
$ListItems = (Get-SPweb $WebURL).lists.TryGetList($ListName).Items | Where {$_.HasUniqueRoleAssignments}
# If List Exists with Unique permission
Foreach($ListItem in $ListItems)
{
#Reset broken list item inheritance
$ListItem.ResetRoleInheritance()
Write-host "Broken Inheritance Reset on List Item:" $ListItem.URL
}
Ayrıca tüm liste öğelerinin benzersiz izinlerini tek bir satırda şu şekilde silebiliriz:
(Get-SPweb "https://intranet.crescent.com/marketing/").Lists["Invoices"].Items | Foreach-Object{ $_.ResetRoleInheritance() }
İlgili Mesajlar:
- PowerShell kullanarak SharePoint'te Kalıtımı Kırın
- SharePoint benzersiz izinler raporu
