首页 > 解决方案 > 如何将成员添加到 ForEach 循环中对象的现有属性?

问题描述

我正在尝试将 Azure PowerShell 中的多个 cmdlet 合并到一个对象中。例如:

$rbacroles = Get-AzRoleAssignment -ObjectId $user.id
$obj = New-Object -TypeName psobject
$obj | Add-Member -MemberType NoteProperty -Name AzureRoles -Value $rbacroles.roleDefinitionName
$obj | Add-Member -MemberType NoteProperty -Name Scope -Value $rbacroles.scope

但是,有时我必须将列表 ID 转换为名称,因此

ForEach ($aadroleid in $aadroles)
{
$id = $aadrole.roleDefinitionId
$uri = "https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/$id"
$roledef = Invoke-RestMethod -Headers $Headers -Uri $uri
$obj | Add-Member -MemberType NoteProperty -Name AzureADRoles -Value $roledef.displayName
}

我遇到的问题是,当我在 ForEach 循环中添加另一个同名成员时,它只会在我添加时覆盖-Force,但我真的只是希望它附加。

标签: powershell

解决方案


推荐阅读