0
点赞
收藏
分享

微信扫一扫

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?

Blog链接:​​https://blog.51cto.com/13969817​​

随着企业的不断壮大,人员流动也变得日渐频繁,那么用户管理和权限分配的需求就与日俱增,比如用户Nigo是很多SharePoint Group的成员,因某种情况,需要将其权限克隆给用户Shelley,那么这种情况下,SharePoint Online的内置功能是无法实现的,在不借助第三方工具的情况下,该如何实现呢?

下图为Nigo的权限结构图

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_Clone

说明:

  • Sharing Link,用户会存储在特殊的Group中
  • 子节点打破继承之后,针对父节点而言,会生成Limited Group

解决方案:今天我们调用​​Clone-SPOUserGroupPermission​​​​函数​​来实现该需求,具体操作过程如下:

1.      获取SharePoint Online Center Admin,并赋给$AdminCenterURL,命令如下:

$AdminCenterURL = ​​https://mvptrainingcn-admin.sharepoint.com/​​​

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_GroupMemberShip_02

2.     连接SharePoint Online管理中心,登录账户至少有SharePoint Online的管理员账户权限,命令如下:

Connect-SPOService -Url $AdminCenterURL -Credential (Get-Credential)

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_Clone_03

3.     获取网站URL,并赋给$SiteURL,命令为:

$SiteURL = ​​https://mvptrainingcn.sharepoint.com/sites/Contoso_China​​​

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_GroupMemberShip_04

4.     获取源端用户ID,并赋给$SourceUserID,命令如下:

$SourceUserID ="nigo.XX@mvptrainingcn.onmicrosoft.com"

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_用户_05

5.     获取目的端用户ID,并赋给$TargetUserID,命令如下:

$TargetUserID =​​ShelleyXXX@mvptrainingcn.onmicrosoft.com​​​

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_Clone_06

  1. ​​调用​​Clone-SPOUserGroupPermission​​函数,命令如下:
Function Clone-SPOUserGroupPermission($SiteURL, $SourceUserID, $TargetUserID)
{
Try {
$Site = Get-SPOSite $SiteURL
$SourceUser = Get-SPOUser -Site $Site -LoginName $SourceUserID
$UserGroups = $SourceUser.Groups
If($UserGroups.Count -gt 0)
{
Write-host -f Yellow "Found the User Member of $($UserGroups.Count) Group(s)..."
ForEach ($Group in $UserGroups)
{
Add-SPOUser -Site $Site -LoginName $TargetUserID -Group $Group | out-null
Write-Host -f Green "Added $TargetUserID to Group '$Group'"
}
}
}
Catch {
Write-host $_.Exception.Message -f Red
}
}

说明:

  • 遍历网站集以及其子节点自定义的所有Group,包含Limited Group
  • 遍历因Sharing Link分享而生成的Group

Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_用户_07

7. 执行Clone命令,如下:

Clone-SPOUserGroupPermission -SiteURL $SiteURL -SourceUserID

$SourceUserID -TargetUserID $TargetUserID


Microsoft 365 开发:如何将GroupMembership从一个用户Clone到另一个用户?_GroupMemberShip_08

说明:Shelley被Clone到Nigo所在的Group中,享受Group在网站所具备的权限。


举报

相关推荐

0 条评论