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

[玩转系统] SharePoint Online:使用 PowerShell 删除子网站中的唯一权限

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

SharePoint Online:使用 PowerShell 删除子网站中的唯一权限


要求:使用 PowerShell 删除 SharePoint Online 中子网站的唯一权限。

如何删除 SharePoint Online 网站的唯一权限?

SharePoint Online 的功能之一是能够为单个文档或文件夹分配唯一的权限。这样可以对谁可以访问、编辑或删除站点内的特定项目进行细粒度控制。然而,这也意味着它很快就会变得复杂且难以管理,特别是对于大型组织而言。在本文中,我们将探讨如何删除 SharePoint Online 中的唯一权限。

删除子网站的唯一权限并恢复权限继承允许在父网站级别管理其安全性,而不是与该子网站分开管理安全性。要恢复 SharePoint Online 中子网站的权限继承,请执行以下操作:

  1. 登录到 SharePoint Online,导航到要删除唯一权限的子网站。
  2. 单击“设置”齿轮>>“站点设置”>>单击“站点权限”链接。
  3. 在功能区上,单击“权限”选项卡,然后在“继承”组中单击“删除唯一权限”。单击“确定”确认提示。

    [玩转系统] SharePoint Online:使用 PowerShell 删除子网站中的唯一权限

这将从 SharePoint Online 子网站中删除唯一权限。请注意,当您删除唯一权限时,所有自定义权限都将丢失且无法恢复!

使用 PowerShell 删除 SharePoint Online 中子网站的唯一权限

以下是如何使用 PowerShell 删除 SharePoint Online 子网站中的唯一权限:


#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"

#Config Parameters
$SiteURL= "https://crescent.sharepoint.com/sites/marketing/2018"

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

    #Check if the given subsite is using unique permissions
    $Web.Retrieve("HasUniqueRoleAssignments")
    $Ctx.ExecuteQuery()

    #Reset broken inheritance
    If($Web.HasUniqueRoleAssignments)
    {
        #delete unique permissions of a subsite in sharepoint online powershell
        $Web.ResetRoleInheritance()
        $Web.Update()
        $Ctx.ExecuteQuery()    
        Write-host -f Green "Unique Permissions Removed from the Site!"
    }
    Else
    {
        Write-host -f Yellow "Site is Already Inheriting Permissions from the Parent!"
    }
}
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

执行后,唯一的权限将被删除,并且该站点将从父站点继承其权限。

PnP PowerShell 重置 SharePoint Online 子网站中的权限继承

让我们看看如何使用 PnP PowerShell 重置 SharePoint Online 中的子网站权限。此过程将恢复子网站的权限与其父网站具有相同的权限。


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/2018"
 
#Connect PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
 
#Get the web
$Web = Get-PnPWeb

#Remove unique permissions
$Web.ResetRoleInheritance()
Invoke-PnPQuery

如何删除网站集中所有子网站的唯一权限?


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Retail"

Try {
    #Connect to SharePoint Online site
    Connect-PnPOnline -Url $SiteURL -Interactive

    #Get all subsites in SharePoint Online site using PnP PowerShell
    $WebsCollection = Get-PnPSubWeb -Recurse
 
    #Iterate through each subsite
    ForEach($Web in $WebsCollection)
    {
        #Check if web is using unique permissions
        $HasUniquePermissions =  $Web.retrieve("HasUniqueRoleAssignments")
        Invoke-PnPQuery
        
        If($Web.HasUniqueRoleAssignments)
        {
            #Remove unique permissions
            $Web.ResetRoleInheritance()
            Invoke-PnPQuery
            Write-Host "Unique Permissions Reset for $($Web.ServerRelativeURL)" -f Green
        }
    }
}
Catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

总之,从 SharePoint Online 中的子网站删除唯一权限是一个简单的过程。通过执行本文中概述的步骤,您可以快速轻松地恢复为站点的默认权限集。有时可能需要删除这些权限,无论是出于安全目的还是为了简化站点的权限结构,这可以通过使用 PowerShell 来完成,

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

取消回复欢迎 发表评论:

关灯