2013-04-10 120 views
0

我正在尝试构建一个列出当前在Active Directory中锁定的所有帐户的应用程序。据我了解,当帐户被锁定时,活动目录将对象的LockedOut属性更改为true,并且依赖于其他方法的活动目录不太可靠,例如看到lockoutTime>1是否可以向LDAP查询扩展的Active Directory属性?

我知道你可以看到这个属性,以及更多,如果你运行get-aduser johndoe -properties *但我还没有能够通过LDAP查询获得所有的属性。

换句话说,是否可以通过LDAP查询来提取扩展AD属性,例如lockedOut

回答

0

对不起,我以前的回答确实是错的。然而,做一些研究后似乎:

  1. lockoutTime属性被设置或者为0可靠地表示该帐户是锁定。 (请参阅this article的备注部分)。

  2. msDS-User-Account-Control-Computed位字段属性可靠地指示帐户是否被锁定(如果设置了0x10位),但它是一个计算值不能包含在搜索过滤器中。

所以最好的解决办法可能是查询该可以一个过滤器被锁定像(&(objectClass=user)(lockoutTime>=1))所有账户,然后以编程的结果进一步通过检查0x10msDS-User-Account-Control-Computed属性过滤器,让你有准确的结果。

this article的末尾列出了相同的解决方案。

+0

btw你需要使用SearchResult.GetDirectoryEntry()来获取DirectoryEntry对象。然后使用$ directoryEntry.Properties [“msDS-User-Account-Control-Computed”]获取该值。 – 2015-01-14 22:47:08