【问题标题】:Create an AD account and set password as expiring in 45 days创建一个AD账号并设置密码为45天后过期
【发布时间】:2016-03-16 00:56:14
【问题描述】:

我需要一些帮助来处理现有脚本中的一行,该脚本创建一个用户帐户并将密码设置为非过期 (66048)。

我正在尝试修改代码,以便将密码有效期设置为 45 天,但无法找到有关如何执行此操作的任何信息。

脚本中当前行代码如下:

objUser.userAccountControl = 66048  ' normal and never expires

objUser.PasswordRequired = True
objUser.SetPassword strPassword

For intLoop = LBound(aryGroups) To UBound(aryGroups)
    Set objGroup = GetObject("LDAP://" & aryGroups(intLoop))

    objGroup.Add objUser.ADsPath

有没有办法将 objUser.userAccountControl 行中的代码从 66048 更改为其他允许我执行此操作的代码?我读过的所有内容都指向密码被设置为“不需要”、“过期”或“无法更改”。

我正在尝试删除管理员在脚本运行后必须手动将密码更改为“确实过期”的过程。

我们目前正在运行 2012 R2 版的 Windows AD。

【问题讨论】:

    标签: windows vbscript active-directory windows-server-2012-r2


    【解决方案1】:

    UserAccountControl 属性可以控制密码是否过期,但过期时间由上次设置密码的时间和通过group policy 定义的密码过期时间定义(通常是默认域策略)。

    不过,您需要从userAccountControl 属性中删除DONT_EXPIRE_PASSWORD flag,否则密码仍然不会过期,即使有密码策略:

    objUser.userAccountControl = 512
    

    【讨论】:

    • “想必你也可以设置成其他值” I don't think so.
    • 如此说明。谢谢。
    • @Ansgar Wiechers。那么你是说我应该完全删除 'objUser.userAccountControl = 66048 ' normal and never expires' 行,这将解决我的问题?
    • @JamesHeathershaw 不,我不是这么说的。请再读一遍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多