Arrays 如何使用数组作为源PowerShell在数组中输出Foreach结果

Arrays 如何使用数组作为源PowerShell在数组中输出Foreach结果,arrays,powershell,csv,Arrays,Powershell,Csv,遇到了一个有点复杂的情况,我不知道如何从PowerShell中摆脱出来,需要一些帮助:) 情况如下:我使用$userId=Import CSV“Email\u List.CSV” 我需要对$UserId数组中的每个条目运行命令getazureaduser-ObjectId$UserId,并将其存储在另一个名为$UserObjectID的数组中,以供以后使用。 我似乎不知道该怎么办,有人能帮我吗 我尝试过几种不同的方法,但没有一种有效:( 提前感谢您的帮助!希望这对您有所帮助 在您的CSV文件中,

遇到了一个有点复杂的情况,我不知道如何从PowerShell中摆脱出来,需要一些帮助:)

情况如下:我使用
$userId=Import CSV“Email\u List.CSV”

我需要对$UserId数组中的每个条目运行命令
getazureaduser-ObjectId$UserId
,并将其存储在另一个名为$UserObjectID的数组中,以供以后使用。 我似乎不知道该怎么办,有人能帮我吗

我尝试过几种不同的方法,但没有一种有效:(

提前感谢您的帮助!

希望这对您有所帮助

在您的CSV文件中,您正在导入包含
UserPrincipalName
删除
@domain.com.au
的CSV文件,以下操作将起作用

$UserId = import-csv "\\file\location\Email_List.csv"

$AzureCreds = (Get-Credential)

Connect-AzureAD -Credential $AzureCreds

$appId = "de35f1ae-1805-4a8c-b862-053e75bb94ea" 

Foreach($Name in $UserID.UPN){   
    $user = Get-AzureADUser -SearchString "Name"
    $servicePrincipal = Get-AzureADServicePrincipal -Filter "appId eq '$appId'" 
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $servicePrincipal.ObjectId -Id $servicePrincipal.AppRoles.Id
}

您能够发布您试图执行此操作的代码吗?当然可以:
$userId=Import Csv“Email_List.Csv”
$appId=“de35f1ae-1805-4a8c-b862-053e75bb94ea”
$AzureCreds=Get Credential
连接AzureAD-Credential$AzureCreds
$user=Get-AzureADUser-ObjectId$userId
$servicePrincipal=Get-AzureADServicePrincipal-Filter“appId eq'$appId'”
New AzureADUserAppRoleAssignment-ObjectId$user.ObjectId-PrincipalId$user.ObjectId-ResourceId$servicePrincipal.ObjectId-Id$servicePrincipal.Approvles.Id
很抱歉格式太复杂,堆栈溢出不允许我在不同的服务器上拆分它lines@BenH:已经尝试过了,不起作用,我收到这个错误
get-AzureADUser:无法转换“System.Object[]'到参数'ObjectId'所需的类型'System.String'。不支持指定的方法。
非常感谢!!正如您所知,我必须将@domain.com保留在csv中,因为-SearchString行为怪异,因此在我的原始脚本中,它为什么指向-ObjectId。总之,我需要的是“foreach[…]”你加了一句。有了这句话,我对Foreach的工作原理有了更多的了解,我知道我的生活太复杂了哈哈。再次感谢你的快速帮助,节省了几个小时的时间