PowerShell - 如何获取嵌套数组的键值

PowerShell - How to get key values of a nested array

我正在使用新的 MS Graph PowerShell cmd,并尝试使用 cmd Get-MgApplicationOwner

获取分配为 Azure AD 应用程序注册所有者的所有用户的列表
Get-MgApplicationOwner -ApplicationId $appObjectId

这给了我如下结果,有 2 个用户所有者

Id DeletedDateTime AdditionalProperties
00000000-0000-0000-0000-000000000000 -- {[@odata.type, #microsoft.graph.user], [businessPhones, System.Object[]], [displayName, User1 LastName], [givenName, User1]...}
00000000-0000-0000-1111-000000000000 -- {[@odata.type, #microsoft.graph.user], [businessPhones, System.Object[]], [displayName, User2], [userPrincipalName, User2@domain.com]}

如果我这样做 (Get-MgApplicationOwner -ApplicationId $appObjectId).AdditionalProperties,我可以看到 2 个用户的所有属性为 1 table

Key Value
@odata,type "#microsoft,graph,user"
businessPhones {1234567890}
displayName User1 LastName
givenName User1
mail User1@domain.com
surname LastName
userPrincipalName User1@domain.com
@odata,type #microsoft,graph,user
businessPhones {}
displayName User2
userPrincipalName User2@domain.com

我正在尝试从这个 AdditionalProperties 数组中获取 UserPrincipalNames,并且 我试过点符号 (Get-MgApplicationOwner -ApplicationId $appObjectId).AdditionalProperties.UserPrincipalName 但没有运气。我知道我可以对每个 Id 进行查找,但不想

期望输出为数组

User1@domain.com    
User2@domain.com

其实我发现答案是关键值是case-sensitive。 dot-notation 和 SantiagoSquarzon 的解决方案在使用 case-correct userPrincipalName

时都有效