当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 删除列表中的唯一权限并恢复继承

作者:精品下载站 日期:2024-12-14 14:09:21 浏览:16 分类:玩电脑

SharePoint Online:使用 PowerShell 删除列表中的唯一权限并恢复继承


要求:SharePoint Online 删除列表或文档库中的所有唯一权限。

如何在 SharePoint Online 中删除唯一权限并从父级继承?

独特的权限使您可以精细控制谁可以访问 SharePoint Online 中的内容。但是,有时可能需要将列表或文档库恢复为其默认权限。删除列表或库的唯一权限并恢复权限继承允许在站点级别管理其安全性,而不是与该列表分开管理安全性。要恢复列表或文档库的权限继承,请执行以下操作:

  1. 登录到 SharePoint Online 并导航到要删除唯一权限的列表或库。
  2. 在功能区上,单击“列表/库”选项卡,然后在“设置”组中单击“列表/文档库设置”。
  3. 单击“权限和管理”组下“列表设置”页面中的“此列表的权限”链接。
  4. 在功能区上,单击“权限”选项卡,然后在“继承”组中单击“删除唯一权限”。单击“确定”确认提示。

    [玩转系统] SharePoint Online:使用 PowerShell 删除列表中的唯一权限并恢复继承

这将从列表中删除所有唯一权限并从其父级继承权限。所有具有唯一权限的用户都将继承父对象的权限,例如站点、库或文件夹。让我们看看 SharePoint Online PowerShell 从父网站继承权限。

使用 PowerShell 删除列表或文档库的唯一权限

如果您决定不再需要列表或文档库的唯一权限,您也可以通过 PowerShell 脚本删除它们。以下是从父网站继承权限的 SharePoint Online PowerShell:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\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

此 PowerShell 删除给定列表的所有唯一权限并从站点恢复权限。

PowerShell 重置网站集所有列表的权限继承

要从父级继承权限,请使用此 PowerShell。它检查给定列表是否具有唯一权限,并通过从父站点继承来重置列表的唯一权限。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\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 从列表中删除唯一权限

下面是 PnP PowerShell,用于重置唯一权限并从 SharePoint Online 列表中的父级继承权限。相同的脚本还适用于删除 SharePoint Online 文档库中的唯一权限。


#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()

这将使有权访问父站点的所有用户都可以访问列表或库。如果要删除列表或库中的列表项目的唯一权限,请使用:SharePoint Online:使用 PowerShell 删除列表中所有项目的唯一权限

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯