SharePoint Online: PowerShell Kullanarak Bir Listedeki Benzersiz İzinleri Silme ve Devralmayı Geri Yükleme
Gereksinim: SharePoint Online, Liste veya Belge Kitaplığındaki tüm benzersiz izinleri kaldırır.
SharePoint Online'da Benzersiz izinler ve üst öğeden Devralma nasıl silinir?
Benzersiz izinler, SharePoint Online'da kimin neye erişebileceği konusunda size ayrıntılı kontrol sağlar. Ancak zaman zaman bir listeyi veya belge kitaplığını varsayılan izinlerine geri yükleme gereksinimleri olabilir. Bir liste veya kitaplık için benzersiz izinleri kaldırmak ve izin devralmayı geri yüklemek, güvenliği bu listeden ayrı olarak yönetmek yerine site düzeyinde yönetilmesine olanak tanır. Bir liste veya belge kitaplığının izin devralmasını geri yüklemek için aşağıdakileri yapın:
- SharePoint Online'da oturum açın ve benzersiz izinleri kaldırmak istediğiniz listeye veya kitaplığa gidin.
- Şeritte Liste/Kitaplık sekmesine tıklayın ve ardından Ayarlar grubunda Liste/Belge Kitaplığı Ayarları'na tıklayın.
- Liste Ayarları sayfasında “İzinler Ve Yönetim” grubu altında “Bu Liste İçin İzinler” bağlantısına tıklayın.
Şeritte İzinler sekmesine tıklayın ve ardından Devralma grubunda Benzersiz İzinleri Sil'e tıklayın. İstemi OK ile onaylayın.
Bu, listedeki tüm benzersiz izinleri kaldırır ve izinleri üst öğeden devralır. Benzersiz izinlere sahip tüm kullanıcılar, site, kitaplık veya klasör gibi üst nesnenin izinlerini devralır. Ana siteden İzinleri Devralmak için SharePoint Online PowerShell'i görelim.
PowerShell kullanarak Liste veya Belge Kitaplığındaki Benzersiz İzinleri Silme
Artık bir liste veya belge kitaplığında benzersiz izinlere ihtiyacınız olmadığına karar verirseniz bunları PowerShell betiğiyle de kaldırabilirsiniz. Ana siteden izinleri devralmak için SharePoint Online 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"
#Function to remove unique permissions and inherit from the parent
Function Remove-ListUniquePermissions
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $ListName
)
Try {
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#sharepoint online powershell inherit permissions
$List=$Ctx.Web.Lists.GetByTitle($ListName)
$List.ResetRoleInheritance()
$List.Update()
$Ctx.ExecuteQuery()
Write-Host "Unique Permissions are removed and inherited from the Parent!" -ForegroundColor Green
}
Catch {
write-host -f Red "Error Deleting Unique Permissions!" $_.Exception.Message
}
}
#sharepoint online powershell reset permissions
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
#Call the function to remove unique permissions from a list
Remove-ListUniquePermissions -SiteURL $SiteURL -ListName $ListName
Bu PowerShell, belirli bir listenin tüm benzersiz izinlerini siler ve izinleri siteden geri yükler.
PowerShell, Bir Site Koleksiyonunun Tüm Listelerinin İzin Devralmasını Sıfırlayacak
İzinleri üst öğeden devralmak için bu PowerShell'i kullanın. Verilen listenin benzersiz izinlere sahip olup olmadığını kontrol eder ve listenin benzersiz izinlerini ana siteden devralarak sıfırlar.
#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 Delete Unique Permission from all lists of a Web
Function Reset-SPOListPermission([Microsoft.SharePoint.Client.Web]$Web)
{
Write-host -f Magenta "Searching Unique Permissions on the Site:"$Web.Url
#Get All Lists of the web
$Lists = $Web.Lists
$Ctx.Load($Lists)
$Ctx.ExecuteQuery()
#Exclude system lists
$ExcludedLists = @("App Packages","appdata","appfiles","Apps in Testing","Cache Profiles","Composed Looks","Content and Structure Reports","Content type publishing error log","Converted Forms",
"Device Channels","Form Templates","fpdatasources","Get started with Apps for Office and SharePoint","List Template Gallery", "Long Running Operation Status","Maintenance Log Library", "Style Library","Master Docs","Master Page Gallery","MicroFeed","NintexFormXml","Quick Deploy Items","Relationships List","Reusable Content","Search Config List", "Solution Gallery", "Site Collection Images","Suggested Content Browser Locations","TaxonomyHiddenList","User Information List","Web Part Gallery","wfpub","wfsvc","Workflow History","Workflow Tasks", "Preservation Hold Library")
#Iterate through each list
ForEach($List in $Lists)
{
#Get the List
$Ctx.Load($List)
$Ctx.ExecuteQuery()
If($ExcludedLists -NotContains $List.Title -and $List.Hidden -eq $false)
{
#Check if the list is using unique permissions
$List.Retrieve("HasUniqueRoleAssignments")
$Ctx.ExecuteQuery()
#Reset broken inheritance of the list
If($List.HasUniqueRoleAssignments)
{
#delete unique permissions of the List
$List.ResetRoleInheritance()
$List.Update()
$Ctx.ExecuteQuery()
Write-host -f Green "`tUnique Permissions Removed from the List: '$($List.Title)'"
}
}
}
#Process each subsite in the site
$Subsites = $Web.Webs
$Ctx.Load($Subsites)
$Ctx.ExecuteQuery()
Foreach ($SubSite in $Subsites)
{
#Call the function Recursively
Reset-SPOListPermission($Subsite)
}
}
#Config Parameters
$SiteURL= "https://crescent.sharepoint.com/sites/Retail"
#Get Credentials to connect
$Cred = Get-Credential
Try {
#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
$Web = $Ctx.Web
$Ctx.Load($Web)
$Ctx.ExecuteQuery()
#Call the function to delete unique permission from all lists of a site collection
Reset-SPOListPermission $Web
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
SharePoint Online: PnP PowerShell kullanarak Listeden Benzersiz İzinleri Silme
İşte benzersiz izinleri sıfırlamak ve SharePoint Online listesindeki üst öğeden izinleri devralmak için PnP PowerShell. Aynı komut dosyası, SharePoint Online belge kitaplığındaki benzersiz izinleri kaldırmak için de geçerlidir.
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/Sales"
$ListName ="Documents"
#Connect PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get the Context
$Context = Get-PnPContext
#Get the list
$List = Get-PnPList -Identity $ListName
#sharepoint online delete unique permissions powershell
$List.ResetRoleInheritance()
$Context.ExecuteQuery()
Bu, ana siteye erişimi olan tüm kullanıcıların listeye veya kitaplığa erişmesini sağlayacaktır. Bir liste veya kitaplıktaki Liste öğelerine ilişkin benzersiz izinleri silmek istiyorsanız şunu kullanın: SharePoint Online: PowerShell kullanarak Listedeki Tüm Öğeler için Benzersiz İzinleri Sil
