【问题标题】:SELECT function in KQL?KQL 中的 SELECT 函数?
【发布时间】:2022-09-27 09:11:56
【问题描述】:

我试图将列中的单个字符串值存储到 KQL 中的变量中。

像这样:

从表中选择 COLUMN1,其中 COLUMN2 = \'value\'

这是我的 KQL 查询:
##########################################
审计日志
|扩展 GroupName = tostring(TargetResources[0].displayName)
|扩展 ObjectID = tostring(TargetResources[0].id)
|其中类别有“管理”
|其中 GroupName 以_cs \"XYZ\" 开头
##########################################
上述查询有效

我想将列 ObjectID 中的值存储到变量中。

我需要根据变量在同一个表中执行第二个查询。让我们假设变量的名称是“ObjectID”,就像从上面提取的列一样。像这样:
##########################################
审计日志
|其中 Category 有 \"Management\" 并且 OperationName 有 \"Add member to group\"
|扩展 ObjectID2 = tostring(TargetResources[1].id)
|扩展 UPN = tostring(TargetResources[0].userPrincipalName)
|其中 ObjectID2 == ObjectID
##########################################
我怎么做?

    标签: kql


    【解决方案1】:

    如果我理解正确,您可以使用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)
    

    这里有几点需要注意:

    • let 之后的分号告诉 Kusto 第一个查询在哪里结束。
    • 使用where ObjectID2 in (foundID) 作为最后一个子句以防万一 返回几个 ID。如果你确定只有 一,你可以使用where ObjectID2 == toscalar(foundID)之类的东西。

    【讨论】:

      猜你喜欢
      • 2021-06-10
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 2019-12-11
      • 2022-10-13
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多