You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Defender XDR高级狩猎:如何定义KQL函数复用EmailEvents处理逻辑

正确的KQL自定义函数定义方式

KS213错误是因为你误用了客户端参数语法({emlEvt}),KQL自定义函数需要明确声明参数类型,不能用大括号包裹参数。针对你的需求,应该定义一个接收表类型参数的函数,具体实现如下:

函数定义

let projectEmails = (inputTable: table) {
    inputTable
    | extend
        // 解析AuthenticationDetails中的SPF/DKIM/DMARC结果
        SPFResult = tostring(AuthenticationDetails.SPFResult),
        DKIMResult = tostring(AuthenticationDetails.DKIMResult),
        DMARCResult = tostring(AuthenticationDetails.DMARCResult)
    | project-reorder
        // 按需求调整列顺序,可根据实际情况修改
        Timestamp,
        SenderFromAddress,
        RecipientEmailAddress,
        Subject,
        SPFResult,
        DKIMResult,
        DMARCResult,
        *  // 保留剩余所有列到末尾
};

使用方式

定义好函数后,你可以直接在查询中通过invoke关键字调用,结合主题筛选逻辑:

EmailEvents
| where Subject contains "你的指定主题关键词"
| invoke projectEmails()

关键说明

  1. 参数声明:函数参数inputTable: table明确指定接收表类型输入,符合KQL函数语法规范,避免KS213错误。
  2. 解析逻辑:使用tostring()确保动态字段转换为字符串类型,避免后续查询的类型问题。
  3. 列顺序调整:project-reorder中的列名可根据你的实际需求增删调整,*代表保留所有未明确列出的列。

内容的提问来源于stack exchange,提问作者JTB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:05:56