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

如何用Microsoft Graph筛选未启用Entra ID P1许可证的Entra ID用户?

确认查询正确性及取反实现方案

一、第三个目标查询的正确性

你的第三个查询是正确的,它能精准筛选出同时满足以下两个条件的用户:

  • 拥有Entra ID P1许可证(对应ServicePlanId:41781fb2-bc02-4b7c-bd55-b576c07bb09d)
  • 该许可证处于启用状态(capabilityStatus eq 'Enabled')

对比第二个查询,它用了两个独立的any()条件,可能会误匹配到「拥有Entra ID P1但启用的是其他许可证」的用户;而第三个查询把两个条件放在同一个any()内,确保是同一个许可证计划同时满足ID和启用状态,逻辑更准确。

二、取反实现初始需求(未启用Entra ID P1的用户)

要获取所有未启用Entra ID P1许可证的用户,本质是筛选「不存在已启用的Entra ID P1许可证计划」的用户,直接对第三个查询的条件取反即可,使用not关键字:

Get-MgUser -Filter "not assignedPlans/any(a:a/ServicePlanId eq 41781fb2-bc02-4b7c-bd55-b576c07bb09d and a:capabilityStatus eq 'Enabled')" -ConsistencyLevel eventual -CountVariable nonEidp1EnabledCount

这个命令会返回两类用户:

  • 从未被分配过Entra ID P1许可证的用户
  • 已分配Entra ID P1但该许可证处于禁用状态的用户

完全符合你「不使用Where-Object后续筛选」的要求,直接通过Graph API的Filter条件完成查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:02:13