我正在尝试构建一个应用程序,列出当前在Active Directory中锁定的所有帐户。据我所知,当帐户被锁定时,Active Directory会将对象的LockedOut
属性更改为true
,并且依赖其他方法不太可靠,例如查看{{1 }}。
我知道您可以看到此属性,等等,如果您运行lockoutTime>1
但我无法通过LDAP查询获取所有属性。
换句话说,是否可以通过LDAP查询提取扩展的AD属性,例如get-aduser johndoe -properties *
?
答案 0 :(得分:0)
对不起,我之前的回答确实是错的。然而,在做了一些研究后,似乎:
未设置lockoutTime
属性或0表示该帐户未已锁定。 (参见this article)的评论部分。
msDS-User-Account-Control-Computed
位字段属性可靠地指示帐户是否被锁定(如果设置了0x10
位),但它是计算值不能包含在搜索过滤器中
因此,最佳解决方案可能是查询可能使用(&(objectClass=user)(lockoutTime>=1))
等过滤器锁定的所有帐户,然后通过检查0x10
以编程方式过滤结果msDS-User-Account-Control-Computed
属性的位,以便您获得准确的结果。
this article结束时概述了相同的解决方案。