使用Microsoft Graph查询AAD用户总数时出错,求解决方法
问题分析与解决
你遇到的报错主要有两个原因:代码写法错误,以及未启用Azure AD的高级查询功能,具体解决如下:
一、修正代码中的错误
原代码重复调用了.Request()方法,导致$count参数没有被正确应用;同时邮箱后缀筛选建议加上@(避免误匹配类似xxxtenant.com的非目标邮箱)。正确代码如下:
var result = await _graphServiceClient .Users .Request(new[] { new QueryOption("$count", "true") }) .Header("ConsistencyLevel", "eventual") .Filter("endsWith(mail,'@tenant.com')") .GetAsync(); // 提取用户总数 int totalCount = int.Parse(result.AdditionalData["@odata.count"].ToString());
二、启用Azure AD高级查询功能
使用endsWith这类OData高级筛选函数和$count参数,必须先开启Azure AD的对应配置:
- 登录Azure门户,进入Azure Active Directory
- 左侧菜单选择用户设置(部分门户版本显示为“目录设置”)
- 找到允许对目录对象使用高级查询功能选项,设置为是
- 保存设置,等待数分钟让配置生效
完成以上两步后,即可正常执行查询并获取符合条件的用户总数。
内容的提问来源于stack exchange,提问作者user989988
相关产品推荐
相关产品推荐

