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

[玩转系统] SharePoint Online:使用 PowerShell 设置文件夹权限

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

SharePoint Online:使用 PowerShell 设置文件夹权限


要求:使用 PowerShell 更改 SharePoint Online 中的文件夹权限。

如何在 SharePoint Online 中设置文件夹级别权限?

最常见的 SharePoint Online 管理任务之一是管理文件夹权限。在这篇博文中,我们将向您展示如何使用 PowerShell 设置 SharePoint Online 网站的文件夹权限。我们还将介绍如何通过 Web 浏览器界面调整 SharePoint Online 中文件夹的权限。敬请关注!

如何为 SharePoint Online 中的文件夹授予唯一权限?要在 SharePoint Online 中管理文件夹权限(例如“添加”或“限制”),请执行以下步骤:

  1. 导航到目标文件夹所在的 SharePoint Online 文档库。
  2. 从详细信息窗格或文件夹的上下文菜单中单击“管理访问权限”。

    [玩转系统] SharePoint Online:使用 PowerShell 设置文件夹权限

  3. 在“详细信息”窗格中,单击“高级”链接。这将带您进入“高级权限”页面。

    [玩转系统] SharePoint Online:使用 PowerShell 设置文件夹权限

  4. 在功能区中,单击“停止继承权限”按钮并确认提示(如果该文件夹从其父文件夹继承权限)。
  5. 现在,您将获得已对该文件夹拥有权限的用户和组的列表。当您破坏权限时,SharePoint 会从其父级(在我们的例子中为列表/库!)复制权限。单击功能区中的“授予权限”按钮将用户添加到文件夹。

    [玩转系统] SharePoint Online:使用 PowerShell 设置文件夹权限

  6. 输入要向文件夹添加权限的用户和组的名称,然后单击共享页面上的“显示选项”链接选择适当的权限级别。单击“共享”按钮即可为该文件夹添加权限。

    [玩转系统] SharePoint Online:使用 PowerShell 设置文件夹权限

同样,要限制对 SharePoint Online 中文件夹的访问,请在文件夹权限页面中选择所有用户,然后单击“删除用户权限”。

好吧!让我们使用 PowerShell 将用户添加到 SharePoint Online 文件夹。

PowerShell 更改文件夹级别权限 SharePoint Online:

您可以使用 PowerShell 限制对 SharePoint Online 中的文件夹的访问吗?当然,是的!让我们使用 PowerShell 添加对 SharePoint Online 文件夹的权限。此 PowerShell 脚本会破坏文件夹的权限并使用客户端对象模型 (CSOM) 授予权限。


#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" #Or https://crescent.sharepoint.com/sites/Marketing
$FolderURL="/Project Documents/Active" #Or /sites/Marketing/Project Documents/Active - Server Relative URL of the Folder!
$GroupName="Team Site Members"
$UserAccount="Salaudeen@crescent.com"
$PermissionLevel="Edit"

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
    $Web = $Ctx.web

    #Get the Folder
    $Folder = $Web.GetFolderByServerRelativeUrl($FolderURL)
    $Ctx.Load($Folder)
    $Ctx.ExecuteQuery()
    
    #Break Permission inheritence of the folder - Keep all existing folder permissions & keep Item level permissions
    $Folder.ListItemAllFields.BreakRoleInheritance($False,$True)
    $Ctx.ExecuteQuery()
    Write-host -f Yellow "Folder's Permission inheritance broken..."
     
    #Get the SharePoint Group & User
    $Group =$Web.SiteGroups.GetByName($GroupName)
    $User = $Web.EnsureUser($UserAccount)
    $Ctx.load($Group)
    $Ctx.load($User)
    $Ctx.ExecuteQuery()

    #sharepoint online powershell set permissions on folder
    #Get the role required
    $Role = $web.RoleDefinitions.GetByName($PermissionLevel)
    $RoleDB = New-Object Microsoft.SharePoint.Client.RoleDefinitionBindingCollection($Ctx)
    $RoleDB.Add($Role)
         
    #add sharepoint online group to folder using powershell
    $GroupPermissions = $Folder.ListItemAllFields.RoleAssignments.Add($Group,$RoleDB)

    #powershell add user to sharepoint online folder
    $UserPermissions = $Folder.ListItemAllFields.RoleAssignments.Add($User,$RoleDB)
    $Folder.Update()
    $Ctx.ExecuteQuery()
    
    Write-host "Permission Granted Successfully!" -ForegroundColor Green  
}
Catch {
    write-host -f Red "Error Granting permission to  Folder!" $_.Exception.Message
}

此 PowerShell 中断文件夹的权限继承并授予用户和组访问权限。这是文件夹权限更改的结果:

[玩转系统] SharePoint Online:使用 PowerShell 设置文件夹权限

  • 要从 SharePoint Online 中的文件夹中删除用户或组,请使用此 PowerShell 脚本:如何从 SharePoint Online 中的文件夹权限中删除用户或组?
  • 如果要设置 SharePoint Online 文档库中所有文件夹的权限,请参阅:SharePoint Online:使用 PowerShell 向文档库中的每个文件夹授予权限

PnP PowerShell 更改 SharePoint Online 中的文件夹权限

要向 SharePoint Online 中的文件夹授予权限,请使用此 PnP PowerShell:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName="Documents"
$FolderServerRelativeURL = "/sites/marketing/Shared Documents/2019"
$UserAccount = "Salaudeen@crescent.com"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get the Folder from URL
$Folder = Get-PnPFolder -Url $FolderServerRelativeURL
    
#Grant Permission to a Folder
Set-PnPListItemPermission -List $ListName -Identity $Folder.ListItemAllFields -User $UserAccount -AddRole 'Contribute'

如何限制对 SharePoint Online 中文件夹的访问?

您还可以使用 Set-PnPFolderPermission cmdlet 限制 SharePoint Online 文件夹访问。这是一个例子:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName ="Branding"
$FolderServerRelativeURL = "/Sites/Marketing/Branding/2020"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#PowerShell to add user to sharepoint online folder
Set-PnPfolderPermission -List $ListName -identity $FolderServerRelativeURL -User "salaudeen@crescent.com" -AddRole "Edit"

#To remove user, use: Set-PnPfolderPermission -List $ListName -identity $FolderSiteRelativePath -User "salaudeen@crescent.onmicrosoft.com" -RemoveRole "Edit"

如何使用 PnP PowerShell 更改 SharePoint Online 中的文件夹权限?

同样,要向 SharePoint Online 组授予权限,请使用:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$ListName ="Branding"
$FolderServerRelativeURL = "/Sites/Marketing/Branding/Active"
  
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
 
#Grant folder permissions to SharePoint Group
Set-PnPfolderPermission -List $ListName -identity $FolderServerRelativeURL -AddRole "Edit" -Group "Marketing Members"

此脚本会中断给定文件夹的权限继承,并向给定用户或组添加或删除对该文件夹的权限。同样,您可以使用 AD 组的名称作为“user”的参数值来设置 AD 组的权限。这是有关 SharePoint Online 的另一篇文章:PowerShell 获取文件夹权限

经常问的问题:

如何限制对 SharePoint Online 中文档库的访问?

浏览到文档库>>单击“设置”>>“库设置”>>单击“此文档库的权限”>>单击“停止继承权限”。现在,您可以向文档库添加或删除用户和组以限制权限。
详细信息:在 SharePoint Online 中设置文档库的权限

如何使每个人都可以访问 SharePoint Online 文件夹?

只需授予文件夹上“Everyone”组的访问权限即可!如何向 SharePoint Online 中的每个人授予访问权限?

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

取消回复欢迎 发表评论:

关灯