1

我正在尝试按员工为 CSV 文件中的多个用户更新 AzureADGroupMember。

这是我得到的帮助,但希望通过 UPN 而不是 EmployeeID 对其进行更新。这是通过 UPN 更新 ADGroupMember 的成功代码。

$users = Import-csv "C:\Temp\testgroup2.csv" 

$users | ForEach-Object{
Add-AzureADGroupMember -ObjectId 599992-xxxxxxxxxx-699999e9e - 
RefObjectId (Get-AzureADUser -ObjectId $_.UPN).ObjectId
}

这是我将 UPN 更改为通过 CSV 中的 EmployeeID 更新的代码。

$users = Import-csv "C:\Temp\testgroup2.csv" 

$users | ForEach-Object{
Add-AzureADGroupMember -ObjectId 599992-xxxxxxx-6ee9999e - 
RefObjectId (Get-AzureADUser -ObjectId $_.EmployeeID).ObjectId
}

这是我尝试通过 EmployeeID 更新时收到的错误消息。

Get-AzureADUser : Error occurred while executing GetUser Code: 
Request_ResourceNotFound Message: Resource '18616' does not exist or one 
of its queried reference- property objects are not present. 

这就是我用来验证员工在 Azure 中是否确实拥有 EmployeeID 的方法。

Get-AzureADUser -ObjectID Xxxxx@hxxxxxx.com | Select-Object *

知道为什么即使我已经验证,它也会读取到 Azure 中不存在员工 ID 吗?

谢谢,

更新:添加我的 csv 设置的屏幕截图,我那里只有员工 ID: CSV 设置

更新 2:我在 powershell 中运行的脚本的屏幕截图:PS中的脚本

4

1 回答 1

0

employeeId与 不同,因此ObjectId您无法将employeeId 传递给ObjectId 属性。

试试下面的脚本,它在我这边运行良好。

$users = Import-csv "C:\Users\joyw\Desktop\testgroup.csv" 
foreach($user in $users){
    $refobjectid = (Get-AzureADUser | Where-Object {$_.ExtensionProperty.employeeId -eq $user.employeeId}).ObjectId
    Add-AzureADGroupMember -ObjectId 9d42d3ea-xxxxxxxx-c31428b600ad -RefObjectId $refobjectid
}

我的.csv文件:

UPN,Role,employeeId
leeliu@xxxxxx.onmicrosoft.com,role1,12345
test@xxxxxx.onmicrosoft.com,role2,123

在此处输入图像描述

于 2019-04-18T01:21:40.450 回答