Azure Sentinel中用KQL重命名含索引的嵌套字段列可行吗?
解决KQL中重命名含特殊字符/数组索引列的问题
当你需要重命名像TargetResources[0].displayName这类包含数组索引和特殊字符的列时,直接在project-rename里使用原列名会触发语法错误,因为KQL无法正确识别这类格式的列名作为参数。可以通过以下两种方法解决:
方法一:在project阶段直接重命名(推荐)
不需要先投影再重命名,直接在project步骤里给目标列指定新名称,一步到位:
AuditLogs | where OperationName == "Add group" or OperationName == "Delete group" | where TimeGenerated > ago(20d) | project GroupName = TargetResources[0].displayName, Type = OperationName, Time = ActivityDateTime
方法二:使用project-rename时用方括号包裹原列名
如果坚持要分开投影和重命名步骤,需要把包含特殊字符的原列名用方括号[]包裹,让KQL正确解析:
AuditLogs | where OperationName == "Add group" or OperationName == "Delete group" | where TimeGenerated > ago(20d) | project TargetResources[0].displayName, OperationName, ActivityDateTime | project-rename GroupName = ['TargetResources[0].displayName'], Time = ActivityDateTime, Type = OperationName
这两种方法都能成功将TargetResources[0].displayName重命名为GroupName,同时完成其他列的重命名需求。
内容的提问来源于stack exchange,提问作者Dolev
相关产品推荐
相关产品推荐

