我正在编写一个与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"
答案 0 :(得分:1)
这是不可能的。您只能将密码标记为已过期。
答案 1 :(得分:0)
PasswordExpirationDate
属性为readonly。
我可能错了,但我认为您可以选择将密码设置为过期(使用pwdLastSet
),或者更改\缩短maxPwdAge
属性。