删除站点SharePoint 2013上所有位置的唯一权限

时间:2016-06-21 08:15:53

标签: powershell permissions sharepoint-2013 unique

我想从其上的所有位置删除一个站点上的所有唯一权限,无论它们是库中的列表,库,列表项,文件夹还是文档。必须删除所有唯一权限。

我发现PS脚本删除列表或网站上的唯一权限,但就是这样,没有从所有位置删除的示例。

我发现的脚本如下:
对于网站:

$WebURL ="#"
$web = Get-SPWeb $WebURL
if ( ($web.HasUniqueRoleAssignments) -and ($web.IsRootWeb -eq $false ) )
{
  $web.ResetRoleInheritance()
  Write-host "Broken Inheritance Reset on web:" $web.URL
}

列表:

$WebURL ="#"
$Web = Get-SPWeb $WebURL
$ListColl =  $web.lists | Where-Object
{
  ($_.HasUniqueRoleAssignments -eq $true)  -and ($_.hidden -eq $false)
}
foreach($list in $ListColl) #if($list) #Exists
{
  $list.ResetRoleInheritance()
  Write-host "Broken Inheritance Reset on List:" $list.Title
}

任何帮助?

1 个答案:

答案 0 :(得分:0)

所以,我设法为我的问题找到了解决方案 Bellow是Powershell脚本代码:

Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue 
#Variable for Web URL
$WebURL ="#" 
#get Web object
$Web = Get-SPWeb $WebURL

#Get Lists with Unique permissions - Exclude Hidden lists
$ListColl =  $web.lists | Where-Object  { ($_.hidden -eq $false) }
#Enumerate through each list and reset permission inheritance  
foreach($list in $ListColl)
{
 #Reset list inheritance
 $list.ResetRoleInheritance()
 Write-host "Broken Inheritance Reset on List:" $list.Title

 $items = $list.Items | Where-Object{$_.HasUniqueRoleAssignments};
 foreach($item in $items)
 {
  #Reset broken list item inheritance
  $item.ResetRoleInheritance()
  Write-host "Broken Inheritance Reset on List Item:" $item.URL
 }
$folders = $list.Folders
if ($folders.Count -gt 0)
{
 foreach ($folder in $folders) 
 {
  if ($folder.HasUniqueRoleAssignments -eq $True)
  {
    $folder.ResetRoleInheritance()
    $folder.update()
  }
 }
}
}

就是这样,此脚本会删除一个站点上所有文档,项目,列表,库,文件夹的所有唯一权限。
我用这个页面作为起点:
http://www.sharepointdiary.com/2014/12/delete-unique-permissions-reset-broken-inheritance-using-powershell.html