如何设置Active Directory用户的密码到期日期

时间:2011-08-10 09:36:29

标签: c# vbscript active-directory

我正在编写一个与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"

2 个答案:

答案 0 :(得分:1)

这是不可能的。您只能将密码标记为已过期。

答案 1 :(得分:0)

PasswordExpirationDate属性为readonly

我可能错了,但我认为您可以选择将密码设置为过期(使用pwdLastSet),或者更改\缩短maxPwdAge属性。