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

咨询Get-ADComputer -Filter参数支持的正则及特殊字符

Get-ADComputer -Filter 参数的匹配规则说明

Get-ADComputer的-Filter参数不支持标准正则表达式,它使用的是AD专属的查询过滤语法(结合PowerShell表达式的子集),和你之前在计划任务里用的标准正则完全是两套规则,这就是你的正则^ORD\d{3}\$$无法生效的原因。

正确实现需求的写法

你要匹配名称以ORD开头、后跟3个数字的计算机,有两种高效写法:

方法1:PowerShell表达式风格的Filter

用-like结合字符范围限定,精准匹配3个数字:

Get-ADComputer -Filter { Name -like 'ORD[0-9][0-9][0-9]' }

方法2:LDAP过滤语法(更精准)

直接用LDAP格式的过滤规则,原生支持字符范围匹配:

Get-ADComputer -LDAPFilter "(name=ORD[0-9][0-9][0-9])"

-Filter 参数支持的特殊字符与规则

PowerShell表达式风格的-Filter支持以下匹配相关的特殊字符:

  • *:匹配任意长度的任意字符(包含0个字符)
  • ?:匹配单个任意字符
  • []:匹配括号内的单个字符,支持范围(如[0-9]匹配数字、[a-zA-Z]匹配字母),也支持排除([^0-9]匹配非数字)

同时支持的比较运算符包括:-eq、-ne、-gt、-lt、-like、-notlike

注意:标准正则里的^(行首锚点)、$(行尾锚点)、\d(数字简写)、{n}(重复次数)等语法,在-Filter中完全不生效。

备选方案:用标准正则过滤

如果一定要用标准正则,可以先拉取所有计算机对象,再通过Where-Object过滤(适合小环境,大环境效率较低):

Get-ADComputer -Filter * | Where-Object { $_.Name -match '^ORD\d{3}$' }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:18:19