我试图将列中的单个字符串值存储到KQL中的变量中。
如下所示:
SELECT COLUMN1 FROM TABLE WHERE COLUMN2 = 'value'以下是我的KQL查询:
AuditLogs
| extend GroupName = tostring(TargetResources[0].displayName)
| extend ObjectID = tostring(TargetResources[0].id)
| where Category has "Management"
| where GroupName startswith_cs "XYZ"以上查询工作。
我想将列ObjectID的值存储到变量中。
我需要根据变量在同一个表中执行第二个查询。
让我们假设变量名为ObjectID,就像从上面提取的列一样。就像这样:
AuditLogs
| where Category has "Management" and OperationName has "Add member to group"
| extend ObjectID2 = tostring(TargetResources[1].id)
| extend UPN = tostring(TargetResources[0].userPrincipalName)
| where ObjectID2 == ObjectID我该怎么做?
发布于 2022-09-27 01:11:56
如果我理解得对,你可以使用let来完成这个任务。因此,完整的查询如下所示:
let foundID = AuditLogs
| extend GroupName = tostring(TargetResources[0].displayName)
| extend ObjectID = tostring(TargetResources[0].id)
| where Category has "Management"
| where GroupName startswith_cs "XYZ"
| project ObjectID;
AuditLogs
| where Category has "Management" and OperationName has "Add member to group"
| extend ObjectID2 = tostring(TargetResources[1].id)
| extend UPN = tostring(TargetResources[0].userPrincipalName)
| where ObjectID2 in (foundID)这里有几件事要注意:
ObjectID。let后面的分号,它告诉库斯托第一个查询在哪里结束。where ObjectID2 in (foundID)作为最后一个子句,以防返回多个in。如果你确定只有一个,你可以使用像where ObjectID2 == toscalar(foundID).这样的东西
发布于 2022-10-04 03:46:09
连接表应该解决这个问题。
AuditLogs | extend GroupName = tostring(TargetResources[0].displayName) | extend ObjectID = tostring(TargetResources[0].id) | where Category contains "Management" | where GroupName startswith_cs "XYZ" | join kind=inner (AuditLogs | where Category contains "Management" and OperationName contains "Add member to group" | extend ObjectID2 = tostring(TargetResources[1].id) | extend UPN = tostring(TargetResources[0].userPrincipalName) ) on $left.ObjectID == $right.ObjectID2
https://stackoverflow.com/questions/73861324
复制相似问题