如何批量添加成员到只有userprincipalname的组?

时间:2018-03-27 15:03:00

标签: powershell azure azure-active-directory

我有以下格式的csv文件

Userprincipalname
joe.blog@acme.com
winston.smart@acme.com
akshe.patel@acme.com
joseph.nkwame@acme
wonkyu.joon@acme.com

但是当使用命令Add-AzureADGroupMember时,我只能通过objectid添加它们,用户对象ID看起来像这样1c00937a-80f1-48d8-88be-fcd3cXXXXa8e

如何使用我的csv文件,将其翻译为对象的ID,然后将这些ID添加到相关组?

我尝试了以下方法来获取对象ID

$varname = Import-Csv .\avo-fr-sec.csv | %{Get-AzureADUser -ObjectId $_.Userprincipalname} | SELECT ObjectId

但我仍然坚持如何使用命令Add-AzureADGroupMember将它们添加到组中,该命令只能接受上述对象ID。

干杯

2 个答案:

答案 0 :(得分:5)

我找到了解决方案

将所有内容放入变量

$varname = Import-Csv .\avo-fr-sec.csv | %{Get-AzureADUser -ObjectId $_.Userprincipalname} | SELECT ObjectId

变量中的所有对象id(此处为varname)使用带有Add-AzureADGroupMember命令的变量

$varname |%{Add-AzureADGroupMember -ObjectId "35d33b63-52cb-4802-bdac-986541XXX9c8" -RefObjectId $_.ObjectId}

正如您所看到的,$_.ObjectId可以使用,因为在上一个命令中,所有内容都放在带有标题ObjectId的变量中

答案 1 :(得分:1)

您也可以通过在单个foreach中迭代每个对象来完成此操作。 将用户objectid存储在变量中,如果找到则将其添加到组中。

Import-Csv .\avo-fr-sec.csv | ForEach-Object {
    $ObjectId = (Get-AzureADUser -ObjectId $_.Userprincipalname).ObjectId
    If ($ObjectId) {
        Add-AzureADGroupMember -ObjectId "35d33b63-52cb-4802-bdac-986541XXX9c8" -RefObjectId $ObjectId
    }
}