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

使用Microsoft Graph API筛选Azure AD中30天未登录的E5许可无效用户

解决Azure AD用户筛选Graph查询失效问题

我需要筛选过去30天内未进行交互式和非交互式登录,且已分配Microsoft 365 E5许可证的Azure AD用户,但当前使用的Graph查询无法正常返回结果。

原查询:

https://graph.microsoft.com/beta/users
?filter=signInActivity/lastSignInDateTime le @{addDays(utcNow(), -30)}
&signInActivity/lastNonInteractiveSignInDateTime le @{addDays(utcNow(), -30)}
&assignedLicenses/any(s:s/skuId eq 184efa21-98c3-4e5d-95ab-d07053a96e67)
&$select=displayName,userPrincipalName,signInActivity

问题原因

  • 多个筛选条件未通过and逻辑合并到同一个$filter参数中,Graph API要求所有筛选条件都放在$filter内用逻辑运算符连接
  • 未处理signInActivity字段为null的情况(从未登录过的用户),这类用户也符合“过去30天未登录”的需求,但会被原查询过滤掉

修正后的查询

https://graph.microsoft.com/beta/users
?$filter=(signInActivity/lastSignInDateTime le @{addDays(utcNow(), -30)} or signInActivity/lastSignInDateTime eq null) 
and (signInActivity/lastNonInteractiveSignInDateTime le @{addDays(utcNow(), -30)} or signInActivity/lastNonInteractiveSignInDateTime eq null)
and assignedLicenses/any(s:s/skuId eq 184efa21-98c3-4e5d-95ab-d07053a96e67)
&$select=displayName,userPrincipalName,signInActivity

说明

  • 将所有筛选条件合并到一个$filter参数中,用and连接不同的筛选规则
  • 针对交互式和非交互式登录时间,分别添加or {字段} eq null的逻辑,包含从未登录过的用户
  • 保留原有的许可证筛选规则和字段选择参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:05:10