powershell - 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 的变量。
我不知道这对我试图解释或实现的任何人是否有意义?
这是错误片段 错误片段
解决方案
好的,所以我能够与朋友一起解决这个问题,我也想在这里分享它,因为我还没有真正看到任何使用 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"
}
我希望这能让某人的生活更轻松:)
推荐阅读
- javascript - 在 v-for 循环中使用 Vuetify v-btn 和加载器
- mysql - 捕获错误消息/错误处理
- spring - CaffeineCacheManager 与 SimpleCacheManager
- r - 如何过滤包含 2 个值(Y 和 N)的列的数据流,然后根据过滤后的其他列中的计数总和(Y 和 N 值)
- spring-boot - 使用 Gradle 时从 IntelliJ 运行时 Flyway 未找到迁移
- r - 如何创建具有双轴的条形图?
- gatsby - 如何使用 gatsby-background-image 和 gatsby-remote-image
- c# - 在 Visual Studio Code 中的当前行上方编写自定义代码段输出
- html - 是否可以使用未锚定的开始和结束位置在 CSS 背景中设置渐变?
- python-3.x - 如何在 Windows 10 中安装 python 3.7.4 和 pip 到路径?