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

如何调整现有KQL语句以查询近30天未登录服务的AAD用户

Kusto查询调整方案(获取近30天未登录企业服务用户)

实现逻辑

  • 先拉取你租户下的全量有效用户列表,这里默认调用AAD内置的IdentityInfo表,如果你有自定义的企业用户台账表,可直接替换
  • 统计近30天内有成功登录记录的用户集合
  • 对两个用户集合做差集匹配,最终输出无登录记录的用户

调整后完整查询代码

// 定义统计时间范围,可按需修改
let lookbackPeriod = 30d;
// 1. 拉取租户全量有效用户,可按需添加过滤条件(比如只统计在职员工)
let allValidUsers = IdentityInfo
    | where TimeGenerated > ago(1d) // 取最新的用户快照
    | where AccountEnabled == true // 只保留启用的用户
    | project UserPrincipalName, UserDisplayName, JobTitle, Department;
// 2. 统计近30天有成功登录记录的用户
let loggedInUsers = SigninLogs
    | union ADFSSignInLogs
    | where TimeGenerated between (ago(lookbackPeriod) .. now())
    | where TokenIssuerType in ('AzureAD', 'ADFederationServices') // 固定筛选可删掉原查询中的*参数判断逻辑
    | extend errorCode = Status_dynamic.errorCode
    | where errorCode == 0 // 仅统计成功登录的记录
    | distinct UserPrincipalName;
// 3. 差集匹配得到未登录用户
allValidUsers
| join kind=leftanti loggedInUsers on UserPrincipalName

可选适配调整

  • 如果你需要筛选未登录指定应用的用户,可在loggedInUsers的查询逻辑中添加| where AppDisplayName == "你的服务名称"筛选条件
  • 原查询中的'*'是AAD工作簿的参数占位符,如果你保留工作簿参数联动功能,可把固定筛选条件换回对应的参数判断逻辑
  • 如果不需要部门、岗位等扩展信息,可删除allValidUsers中对应project的字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:36:03