You need to enable JavaScript to run this app. 如何为Get-AzureADUser命令设置两个同时生效的过滤条件?
优惠活动
大模型
产品
解决方案
定价
更多

如何为Get-AzureADUser命令设置两个同时生效的过滤条件?

Azure AD用户查询多条件筛选配置

你原来用来筛选DisplayName以student开头用户的语句是:
Get-AzureADUser -Filter "startswith(DisplayName,'student')"
要叠加UserPrincipalName字段匹配@somedomain.com的规则,直接把两个条件用逻辑连接词拼到同一个Filter参数里就行,能让服务端直接完成联合匹配,不用把全量数据拉到本地再筛。

可直接运行的配置写法

考虑到Azure AD的UPN结构是「用户名@域名」,要匹配包含@somedomain.com的规则,优先选兼容性更好的后缀匹配写法,避免部分环境下contains()操作符的语法兼容问题:

Get-AzureADUser -Filter "startswith(DisplayName,'student') and endswith(UserPrincipalName,'@somedomain.com')"

如果确实需要匹配字段任意位置包含指定字符串的逻辑,也可以直接用contains()操作符,对应语句为:
Get-AzureADUser -Filter "startswith(DisplayName,'student') and contains(UserPrincipalName,'@somedomain.com')"

配置避坑要点

  • 整个Filter值必须用双引号包裹,内部的匹配常量用单引号包裹,不要混用引号导致PowerShell解析报错
  • OData语法要求逻辑连接词and小写,写为大写AND很可能触发服务端的筛选语法校验失败
  • 别图省事用本地管道做二次过滤(比如在原有语句后面拼| Where-Object {$_.UserPrincipalName -like "*@somedomain.com"}),这种写法会先把所有符合DisplayName条件的用户全量拉到本地终端,租户用户量较大时会出现查询超时、速度极慢的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 08:45:04