SharePoint Online:使用 PowerShell 设置文件夹权限
要求:使用 PowerShell 更改 SharePoint Online 中的文件夹权限。
如何在 SharePoint Online 中设置文件夹级别权限?
最常见的 SharePoint Online 管理任务之一是管理文件夹权限。在这篇博文中,我们将向您展示如何使用 PowerShell 设置 SharePoint Online 网站的文件夹权限。我们还将介绍如何通过 Web 浏览器界面调整 SharePoint Online 中文件夹的权限。敬请关注!
如何为 SharePoint Online 中的文件夹授予唯一权限?要在 SharePoint Online 中管理文件夹权限(例如“添加”或“限制”),请执行以下步骤:
- 导航到目标文件夹所在的 SharePoint Online 文档库。
从详细信息窗格或文件夹的上下文菜单中单击“管理访问权限”。
-
在“详细信息”窗格中,单击“高级”链接。这将带您进入“高级权限”页面。
- 在功能区中,单击“停止继承权限”按钮并确认提示(如果该文件夹从其父文件夹继承权限)。
现在,您将获得已对该文件夹拥有权限的用户和组的列表。当您破坏权限时,SharePoint 会从其父级(在我们的例子中为列表/库!)复制权限。单击功能区中的“授予权限”按钮将用户添加到文件夹。
输入要向文件夹添加权限的用户和组的名称,然后单击共享页面上的“显示选项”链接选择适当的权限级别。单击“共享”按钮即可为该文件夹添加权限。
同样,要限制对 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\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\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 中的文件夹权限中删除用户或组?
- 如果要设置 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 中的每个人授予访问权限?




