我有一个ADUsers列表,我想检查是否有任何用户的密码即将到期,但我找不到任何要检查的属性.
我有一个有趣的问题,我正在编写密码管理网页/服务,我正试图找到一种方法来确定用户的密码何时到期,这样我就可以用它手动重置其他密码并发送电子邮件等.
我遇到的问题是,当我试图遍历我的用户时,我发现他们中的大部分没有pwdlastset属性,所以我无法确定它什么时候会过期.
所以我想我正在寻找一个好方法的想法来检查用户的密码何时到期,除了使用pwdlastset属性和计算剩余时间.
谢谢一堆.
我在 stackoverflow 中搜索了如何为 AD 用户找到 maxPwdAge,解决方案应该是这样的。
DirectoryEntry ldapConnection = new DirectoryEntry();
DirectorySearcher ldapSearch = new DirectorySearcher(ldapConnection);
ldapSearch.Filter = "samaccountname=" + stringWithUsername;
SearchResult user = ldapSearch.FindOne();
Run Code Online (Sandbox Code Playgroud)
现在user包含所有用户属性,但我找不到 maxPwdAge
string passowrdExpireTime = user.Properties["maxPwdAge"][0].ToString(); // It works
string passowrdExpireTime = user.Properties["pwdlastset"][0].ToString(); // pwdlastset doesn't exists
Run Code Online (Sandbox Code Playgroud)
用户的密码确实会在 90 天后过期,正如我使用此 powershell 命令发现的那样(Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.TotalDays。我错过了什么吗?