首页 > 解决方案 > AzureAD Powershell 将一个用户组成员身份复制到另一个用户

问题描述

所以问题是我完全在 AzureAD 上,没有本地服务器。我正在尝试制作一个脚本来将一个用户组成员身份复制到另一个用户,我需要输入的只是用户的电子邮件地址。我已经能够通过使用用户的 objectId 来实现这一点,但如果这有意义的话,我真的不想去寻找 ObjectId。

我写的脚本如下:

# import the Azure Active Directory module in order to be able to use Get-AzureADUserMembership and Add-AzureADGroupMember cmdlet
import-Module AzureAD

Connect-AzureAD

# enter login name of the first user
$user1 = Read-host "Enter username to copy from: " 

# enter login name of the second user
$user2  = Read-host "Enter username to copy to: " 

# Get ObjectId based on username of user to copy from and user to copy to
$user1ObjId = Get-AzureADUser -ObjectID $user1
$user2ObjId = Get-AzureADUser -ObjectID $user2

# Show List of all the groups to be copied
Write-Host "\-- Groups available to copy from" $user1 to $user2 "--\" -ForegroundColor Yellow
ForEach-Object{
    Write-Host "[ ] - List AD UserMembership that $user1 has " -ForegroundColor Blue
Get-AzureADUserMembership  -ObjectId $user1 | Select DisplayName
     }

# copy-paste process
Write-Host "[!] - Adding" $user2 "to the same groups" $user1 " has " "..." -ForegroundColor Yellow -nonewline
Get-AzureADUserMembership -ObjectId $user1ObjId |foreach { Add-AzureADGroupMember -ObjectId $_.ObjectId -RefObjectId $User2ObjId }

该脚本成功地将每个用户的 ObjectId 保存在变量 $user1ObjId 和 $user2ObjId 中,我还能够列出需要复制的组。但是我遇到了一个问题,Get cmdlet 似乎无法绑定包含 ObjectId 的变量。

我不知道这对我试图解释或实现的任何人是否有意义?

这是错误片段 错误片段

标签: powershellazure-active-directory

解决方案


好的,所以我能够与朋友一起解决这个问题,我也想在这里分享它,因为我还没有真正看到任何使用 AzureAD cmdlet 将一个用户组成员身份复制到另一个用户的在线文档或解决方案。

这是有效的脚本:

# import the Azure Active Directory module in order to be able to use Get-AzureADUserMembership and Add-AzureADGroupMember cmdlet
import-Module AzureAD

Connect-AzureAD

# enter login name of the first user
$user1 = Read-host "Enter username to copy from: "

# enter login name of the second user
$user2  = Read-host "Enter username to copy to: " 

# Get ObjectId based on username of user to copy from and user to copy to
$user1Obj = Get-AzureADUser -ObjectID $user1
$user2Obj = Get-AzureADUser -ObjectID $user2


$membershipGroups = Get-AzureADUserMembership -ObjectId $user1Obj.ObjectId

Write-Host "\-- Groups available to copy from" $user1 to $user2 "--\" -ForegroundColor Yellow

foreach($group in $membershipGroups) {
Write-Host $group.DisplayName
Write-Host "[!] - Adding" $user2Obj.UserPrincipalName " to " $group.DisplayName "... " -ForegroundColor Yellow -nonewline
Add-AzureADGroupMember -ObjectId $group.ObjectId -RefObjectId $user2Obj.ObjectId
Write-Host "Done"
}

我希望这能让某人的生活更轻松:)


推荐阅读