我正在通过Azure CLI(az devops security group membership list --id "xxx"
)从Azure Devops中检索组信息。不幸的是,结果在PowerShell中无法使用。
这是json的结果,我需要mailAddress。
{
"DESCRIPTOR": {
"descriptor": "DESCRIPTOR",
"directoryAlias": "DIRECTORYALIAS",
"displayName": "DISPLAYNAME",
"domain": "DOMAIN",
"legacyDescriptor": LEGACYDESCRIPTOR,
"mailAddress": "MAILADDRESS",
"metaType": "METATYPE",
"origin": "ORIGIN",
"originId": "ORIGINID",
"principalName": "PRINCIPALNAME",
"subjectKind": "SUBJECTKIND",
"url": "URL"
},
.....
}
是否有人处理了结果并知道如何获得mailAddress?
谢谢!
3条答案
按热度按时间34gzjxbg1#
**简答:**你应该可以通过
$result.'DESCRIPTOR'.mailAddress
到达mailAddress
属性。以下是为什么和如何:
这告诉我们,
$result
是一个PowerShell自定义对象,描述符本身作为成员(NoteProperties)。因此,
$result.'DESCRIPTOR'.mailAddress
应该可以让您访问mailAddress
属性:更新:
一个Team中可能有多个成员,因此您的
$result
可能包含多个对象。您可以提取所有电子邮件地址,如下所示:yiytaume2#
你可以直接使用Azure CLI和全局参数
--query
,你可以像这样获取mailAddress:此外,您可以使用
--output
更改输出格式。pdsfdshx3#
默认情况下,此命令返回JSON。
您可以通过
ConvertFrom-Json
将JSON转换为PSCustomObject下一个问题是,这个命令没有像您期望的那样返回一个集合,而是返回一个带有属性的对象(每个属性名都是描述符值,正如您所看到的)。
正如其他人所建议的那样,您可以通过
Get-Member -PropertyType NoteProperty
获取这些属性名称。也可以通过对象的PSObject
属性访问这些属性。后者的优点是,您可以访问属性的value
属性-这就是您想要的