【发布时间】:2011-08-10 09:36:28
【问题描述】:
我正在编写一个与 Active Directory 通信的应用程序,我需要测试当 Active Directory 中的用户帐户的密码距离到期日期只有几天时它的行为。
因此我的问题是:如何将特定 Active Directory 用户帐户的密码到期日期设置为“今天 + 2 天”之类的日期(当然,无需更改密码到期策略!)。我正在寻找手动方式或编程解决方案(例如基于 VBScript 或 C#)。
我已经尝试过这两种方法:
使用 ADSIEdit 设置
pwdLastSet。问题:我只能将值更改为 0。其他值被拒绝,错误代码为 0x57(无效参数)。使用
IADsUser::PasswordExpirationDate:问题:设置PasswordExpirationDate失败,错误代码为0x800A01BD。 (参见下面的代码示例。)
代码示例:
strUserName = "test97"
Set objUser = GetObject("LDAP://CN=" & strUserName & ",CN=Users,DC=mydomain,DC=com")
dtmDate = Now+2
objUser.PasswordExpirationDate = dtmDate
objUser.SetInfo
MsgBox "Successfully changed password expiration date"
【问题讨论】:
-
@sternr:我已经阅读了 Stack Overflow 的那篇文章。它没有解决我的问题,在我看来,它也没有回答那篇文章中提出的问题。原因:您只能将 pwdLastSet 设置为 0;因此,pwdLastSet 不能用于设置特定的到期日期。
标签: c# vbscript active-directory