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

使用Get-ADUser过滤userAccountControl=512查询AD活动用户无结果求助

排查AD用户查询脚本无结果的问题

嘿,我来帮你搞定这个AD用户查询的问题!你的脚本没返回结果,主要有几个容易踩的坑,咱们一个个捋清楚:

  • 类型不匹配:字符串 vs 整数
    userAccountControl是AD里的整数类型属性,你在脚本里用了带引号的"512"(字符串)来做比较,PowerShell处理AD过滤器时会严格校验类型,导致匹配失败。把引号去掉,直接用数字512就能解决这个基础问题。

  • AD过滤器的语法优化(可选但推荐)
    虽然脚本里的脚本块过滤器{$userAccountControl -eq 512}能运行,但AD模块更推荐使用原生LDAP过滤器语法(用单引号包裹),执行效率会更高,写法是:-Filter 'userAccountControl -eq 512'

  • 忽略了位掩码的复合属性值
    这是最容易被忽略的关键问题!userAccountControl是一个位掩码属性,用户的实际值通常是多个权限标志的组合(比如正常账户+密码永不过期,值就是512+65536=66048)。如果用-eq 512,只能匹配值刚好等于512的用户,那些带有其他标志位的正常启用用户会被直接漏掉。

    正确的做法是用位与操作-band来检查用户是否包含「正常账户(512)」的标志,同时排除「禁用账户(2)」的标志,这样就能覆盖所有正常启用的用户:

修正后的脚本(推荐版本)

Get-ADUser -Filter '((userAccountControl -band 512) -eq 512) -and ((userAccountControl -band 2) -eq 0)' -Properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8

这个版本会匹配所有正常启用的AD用户,不管他们有没有其他附加的权限标志(比如密码永不过期、不需要Kerberos预认证等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:16:11