json - Kusto KQL 引用 JSON 数组中的第一个对象
问题描述
我需要在 Microsoft Defender ATP 中使用 Kusto KQL 获取 json 数组中第一个条目的值。
数据格式看起来像这样(匿名),我想要“用户名”的值:
[{"UserName":"xyz","DomainName":"xyz","Sid":"xyz"}]
如何拆分或以任何其他方式获取“用户名”值?
解决方案
在 WDATP/MSTAP 中,对于“LoggedOnUsers”类型的数组,您希望将“mv-expand”(多值扩展)与“parsejson”结合使用。
"parsejson" 会将字符串转换为 JSON,mv-expand 会将其扩展为 LoggedOnUsers.Username、LoggedOnUsers.DomainName 和 LoggedOnUsers.Sid:
DeviceInfo
| mv-expand parsejson(LoggedOnUsers)
| project DeviceName, LoggedOnUsers.UserName, LoggedOnUsers.DomainName
请记住,如果打包字段有多个条目(如 DeviceNetworkInfo 的 IPAddresses 字段经常这样做),则整个行将在每个条目中扩展一次 - 因此,在“IPAddresses”中有 3 个条目的机器的一行将被复制 3 次,其中每个不同的 IpAddresses 扩展:
DeviceNetworkInfo
| where Timestamp > ago(1h)
| mv-expand parsejson(IPAddresses)
| project DeviceName, IPAddresses.IPAddress
推荐阅读
- r - 使用错误消息确定操作过程
- android - 如何使用android管理api管理个人资料?
- c# - 被碰撞体击中时将对象捕捉到位置
- dictionary - 如何将图像和文本添加到传单地图的弹出窗口
- c# - 使用 dll 文件运行网站时,asp.net 核心身份登录不起作用
- sql-server - oracle时间戳6转换为sql server datetime2错误
- java - 从字符串创建 ECPublicKey
- php - Stripe checkout 不接受元数据
- javascript - 如何使用 axios HTTP 客户端在 node.js 中使用 ContextualWeb News API?
- django - 如何通过 post JSON 使用 CreateAPIView 创建模型实例