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

KQL新手求助:如何查询从未登录过的用户?

解决KQL获取从未登录用户的问题

你之前的查询基于SigninLogs表聚合用户最后登录时间,但从未登录过的用户根本不会出现在SigninLogs里,所以改条件自然查不到结果。要找这类用户,得结合存储全量用户信息的表(比如Azure AD的AADUsers表)和SigninLogs做对比,用左反连接筛选出没有登录记录的用户。

示例查询

// 从用户主表获取全量用户信息(这里用AADUsers,根据你的环境替换成对应表)
AADUsers
| project UserPrincipalName, DisplayName  // 按需选择要展示的字段
// 左反连接:只保留左表中未在右表出现过的用户
| join kind=leftanti (
    // 从SigninLogs中提取所有有过登录记录的用户
    SigninLogs
    | where OperationName == "Sign-in activity"
    | distinct Identity  // 去重得到所有登录过的用户ID
) on $left.UserPrincipalName == $right.Identity

关键说明

  • join kind=leftanti是核心:它会返回左表(全量用户)中,没有匹配右表(登录过的用户)的条目,也就是从未登录的用户。
  • 注意日志保留期:如果SigninLogs的保留时间短于用户存在的时间,有些早期登录过但日志已被清理的用户会被误判为从未登录,需要结合你的日志保留策略判断结果准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:34:58