Active directory 是否可以在LDAP中查询扩展Active Directory属性?

Active directory 是否可以在LDAP中查询扩展Active Directory属性?,active-directory,Active Directory,我试图构建一个应用程序,列出当前在Active Directory中锁定的所有帐户。据我所知,当帐户被锁定时,Active Directory会将对象的LockedOut属性更改为true,并且依赖其他方法不太可靠,例如查看是否lockoutTime>1 我知道,如果运行get-aduser-johndoe-properties*,您可以看到此属性以及更多属性,但我无法通过LDAP查询获得所有属性 换句话说,是否可以通过LDAP查询拉出扩展的广告属性,例如lockedOut。然而,在做了一些研究

我试图构建一个应用程序,列出当前在Active Directory中锁定的所有帐户。据我所知,当帐户被锁定时,Active Directory会将对象的
LockedOut
属性更改为
true
,并且依赖其他方法不太可靠,例如查看是否
lockoutTime>1

我知道,如果运行
get-aduser-johndoe-properties*
,您可以看到此属性以及更多属性,但我无法通过LDAP查询获得所有属性


换句话说,是否可以通过LDAP查询拉出扩展的广告属性,例如
lockedOut
。然而,在做了一些研究之后,似乎:

  • lockoutTime
    属性未设置或为0可靠地表示帐户未被锁定。(见第页的备注部分)

  • msDS User Account Control Computed
    位字段属性可可靠地指示帐户是否已锁定(如果设置了
    0x10
    位),但它作为计算值不能包含在搜索筛选器中

  • 因此,最好的解决方案可能是查询所有可能被
    (&(objectClass=user)(lockoutTime>=1))
    之类的过滤器锁定的帐户,然后通过检查
    msDS user Account Control Computed
    属性的
    0x10
    位以编程方式进一步过滤结果,这样你就有了准确的结果


    相同的解决方案在本章末尾概述

    顺便说一句,您需要使用SearchResult.GetDirectoryEntry()来获取DirectoryEntry对象。然后使用$directoryEntry.Properties[“msDS用户帐户控制计算”]获取该值。