Microsoft 365 开发:如何移除用户在文件夹以及其下子节点的权限?

网友投稿 288 2022-10-02

Microsoft 365 开发:如何移除用户在文件夹以及其下子节点的权限?

Blog链接:​​365 Training Documents的权限结构如下:

具体操作步骤如下所示:1.     连接PnPOnline,命令如下:

2.     获取SiteURL,并赋给$SiteURL,命令如下:

$SiteURL="365 Documents"

4.     获取Nigo账户,并赋给$ $UserAccount,命令如下:

$UserAccount=​​XXX@mvptrainingcn.onmicrosoft.com​​​

5.     加载SharePoint CSOM程序集,命令如下:

Add-Type-Path "C:\Program Files\Common Files\Microsoft Shared\Web ServerExtensions\16\ISAPI\Microsoft.SharePoint.Client.dll"Add-Type-Path "C:\Program Files\Common Files\Microsoft Shared\Web ServerExtensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

6.     调用函数:Remove-SPOUserPermissionsFromList来移除用户Nigo在Microsoft 365 Documents文件夹的权限,命令如下:

Function Remove-SPOUserPermissionsFromList(){ param ( [Parameter(Mandatory=$true)] [string] $SiteURL, [Parameter(Mandatory=$true)] [string] $FolderURL, [Parameter(Mandatory=$true)] [string] $UserAccount ) Try { $Cred= Get-Credential $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password) $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Ctx.Credentials = $Credentials $Web = $Ctx.web $Folder = $Web.GetFolderByServerRelativeUrl($FolderURL) $Ctx.Load($Folder) $Ctx.ExecuteQuery() $Folder.ListItemAllFields.BreakRoleInheritance($True,$False) $Ctx.ExecuteQuery() Write-host -f Yellow "Folder's Permission inheritance broken..." $User = $Web.EnsureUser($UserAccount) $Ctx.load($User) $Ctx.Load($Folder.ListItemAllFields.RoleAssignments) $Ctx.ExecuteQuery() [Bool]$UserFound = $False ForEach($RoleAssignment in $Folder.ListItemAllFields.RoleAssignments) { $ctx.Load($RoleAssignment.Member) $Ctx.ExecuteQuery() #remove user permission from folder If($RoleAssignment.Member.LoginName -eq $User.LoginName) { $Folder.ListItemAllFields.RoleAssignments.GetByPrincipal($User).DeleteObject() $Ctx.ExecuteQuery() $UserFound = $True Write-host "User Permissions Removed from the List Successfully!" -ForegroundColor Green } } If($UserFound -eq $False) { Write-host "User Not found in List Permissions!" -ForegroundColor Red} } Catch { write-host -f Red "Error Removing permissions from the Folder!" $_.Exception.Message }}

说明:

支持对该文件夹以下的子节点打破继承的权限遍历,比如子文件夹或者文档共享权限的遍历支持对该文件夹父节点比如list的继承权限的遍历

7. 移除Nigo的权限,命令如下:

Remove-SPOUserPermissionsFromList-SiteURL $SiteURL -FolderURL $FolderURL -UserAccount $UserAccount

执行成功,Nigo在该文件夹包含子节点打破继承后,单独授权的权限,包含共享权限的移除。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringMVC中请求参数的获取方式
下一篇:Microsoft 365 开发:如何将文件夹权限复制到同一文档库的另一个文件夹上?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~