如何在KQL查询中展示resourceDetails下的ResourceName与ResourceID?
回答
完全可行,你只需要直接通过点符号访问resourceDetails对象下的ResourceName和ResourceID属性,并在project阶段指定这些字段即可。修改后的KQL查询如下:
securityresources | where type == "microsoft.security/assessments" | extend name = properties.displayName | extend resourceDetails = properties.resourceDetails | where name contains "Machines should have a vulnerability assessment solution" | join kind=leftouter ( resourcecontainers | where type == "microsoft.resources/subscriptions" | extend resolvedSubId = tostring(split(id, '/', 2)[0]), subscriptionName = name | project resolvedSubId, subscriptionName ) on $left.subscriptionId == $right.resolvedSubId | project 建议名称 = name, 资源名称 = tostring(resourceDetails.ResourceName), 资源ID = tostring(resourceDetails.ResourceID), 订阅名称 = subscriptionName
说明
- 使用
tostring()函数可以确保属性值被转换为字符串类型,避免因动态类型导致的显示异常 - 通过别名可以让输出字段名更直观,也可以保留原英文名称
- 如果
resourceDetails下的属性名实际大小写不同(比如resourceId而非ResourceID),请根据实际数据结构调整字段名
内容的提问来源于stack exchange,提问作者Vince
相关产品推荐
相关产品推荐

