如何使用LDAP检索Active Directory组策略的最大密码使用期限

时间:2019-01-23 10:43:50

标签: php active-directory ldap

我想从公司Active Directory中检索有关密码的组策略,但是我找不到任何信息,即如何过滤搜索以找到属性。

起初,我想获得最长密码使用期限,该期限应为msDS-MaximumPasswordAge属性。

我一直在尝试的搜索字词:

ldap_search($ldap, 'CN=Policies,CN=System,DC=company,DC=com', '(objectClass=*)', array('msDS-MaximumPasswordAge'));

这是我尝试过的最宽的过滤器,但它不返回计数不为零的对象。当然,出于此示例的目的,我替换了DC名称。

我错过了什么吗?我应该在其他容器下搜索吗?

非常感谢。

更新: 我发现,AD确实将密码过期日期保留在用户对象下为msDS-UserPasswordExpiryTimeComputed属性下,因此虽然有帮助,但是我仍然需要找到密码设置对象来获取所有其他密码策略。

1 个答案:

答案 0 :(得分:0)

您确定已实施启用了msDS-PasswordSettings的组策略吗?

您应该使用(&(objectClass = msDS-PasswordSettings))之类的过滤器

并返回属性“ msDS-MaximumPasswordAge”。

msDS-PasswordSettings条目出现在LDIF中,例如:

dn: CN=PS??,CN=Password Settings Container,CN=System,DC=dc1,DC=contoso,DC=com
objectClass: msDS-PasswordSettings
msDS-MaximumPasswordAge:-1728000000000
msDS-MinimumPasswordAge:-864000000000
msDS-MinimumPasswordLength:8
msDS-PasswordHistoryLength:24
msDS-PasswordComplexityEnabled:TRUE
msDS-PasswordReversibleEncryptionEnabled:FALSE
msDS-LockoutObservationWindow:-18000000000
msDS-LockoutDuration:-18000000000
msDS-LockoutThreshold:0
msDS-PasswordSettingsPrecedence:20
msDS-PSOAppliesTo:CN=user1,CN=Users,DC=dc1,DC=contoso,DC=com

-吉姆