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

[玩转系统] SharePoint Online:PowerShell 打破文件夹权限继承

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

SharePoint Online:PowerShell 打破文件夹权限继承


要求:使用 PowerShell 中断 SharePoint Online 中文件夹的权限继承。

如何中断 SharePoint Online 中文件夹的继承?

默认情况下,SharePoint Online 中的文件夹继承其父对象(例如文档库或列表)的权限。在某些情况下,您可能希望向用户授予对特定文件夹的权限与对库或网站的权限不同的权限。例如,您可能希望授予一组用户对文档文件夹的只读访问权限,同时允许其他用户添加、编辑和删除该文件夹中的项目。要为文件夹提供唯一的权限,您需要首先打破文件夹的权限继承。

以下是如何在 SharePoint Online 中中断权限继承:

  1. 导航到存储该文件夹的 SharePoint Online 库。
  2. 选择文件夹>>从文件夹的上下文菜单中单击“管理访问”>>单击“管理访问”弹出窗口中的“高级”链接。

    [玩转系统] SharePoint Online:PowerShell 打破文件夹权限继承

  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"
  
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/"
$FolderServerRelativeURL = "/sites/marketing/Shared Documents/2018"
 
Try {
    #Get Credentials to connect
    $Cred= Get-Credential
 
    #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 Folder
    $Folder = $Ctx.Web.GetFolderByServerRelativeUrl($FolderServerRelativeURL)
    $Ctx.Load($Folder)
    $Ctx.ExecuteQuery()
     
    #Break Permission inheritence of the folder - Keep all existing folder permissions & keep Item level permissions
    $Folder.ListItemAllFields.BreakRoleInheritance($True,$True)
    $Ctx.ExecuteQuery()
    Write-host "Folder's Permission Inheritance Broken Successfully!" -ForegroundColor Green  
}
Catch {
    write-host -f Red "Error breaking Folder Permission Inheritance!" $_.Exception.Message
}

这在需要授予特定用户或组访问文件夹而不是整个网站、列表或库的权限的情况下非常有用。

使用 PnP PowerShell 中断 SharePoint Online 中的文件夹继承

在破坏文件夹的权限之前检查该文件夹是否已经具有唯一的权限不是很好吗?好吧,我们先这样做,然后使用 PnP PowerShell 破坏文件夹的权限:


#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing/"
$FolderServerRelativeURL = "/sites/marketing/Shared Documents/2018"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)  #-Interactive
 
#Get the Folder 
$Folder = Get-PnPFolder -Url $FolderServerRelativeURL -Includes ListItemAllFields.HasUniqueRoleAssignments

If($Folder.ListItemAllFields.HasUniqueRoleAssignments)
{
    Write-host "Folder is already with broken permissions!" -f Yellow
}
Else
{
    #Break Folder permissions - keep all existing permissions & keep Item level permissions
    $Folder.ListItemAllFields.BreakRoleInheritance($True,$True)
    Invoke-PnPQuery

    Write-host "Folder's Permission Inheritance is broken!!" -f Green   
}

总之,在 SharePoint Online 中中断文件夹权限继承是一个相对简单的过程,可以通过用户界面或 PowerShell 来完成。通过打破继承,可以为文件夹分配唯一的权限,允许特定用户或组访问该文件夹。

一旦文件夹的权限继承被破坏,您可以向该文件夹添加或删除用户:

  • SharePoint Online:使用 PowerShell 将用户或组添加到文件夹权限
  • SharePoint Online:如何使用 PowerShell 删除用户或组的文件夹权限?

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

取消回复欢迎 发表评论:

关灯