我将在我们的域上实施新的密码策略。
我的主要问题是,我是否应该等待用户更改当前密码的最大时间过去,或者强制执行:下次登录时更改?
我有很多用户,逐一设置更改可能需要半天时间。但等待最大时间可能需要 91 天(如设置的那样)。
我想将最大时间设置为 5 天(例如),并在第 4 天将其再次更改为我想要的 91,但我不确定如何知道所有用户是否都在那段时间内更改了密码。
有想法吗?
答案1
您是否已将新的密码策略告知您的用户?
如果您确信每个人都知道会有新政策并且他们必须更改密码,那么在下次登录时强制更改密码应该不会有问题。
但是,如果您没有给予用户足够的通知,那么当他们在下次登录时被迫更改密码时,许多用户都会措手不及,并且您将经常遇到以下情况:
- 用户登录后发现必须更改密码。
- 用户不太关心密码策略,但非常想检查他们的电子邮件,因此基本上随机选择一个新密码。
- 用户不久后忘记了这个新密码,无法再登录,并请求您帮助重置。
为了了解用户是否更改了密码,Active Directory 会存储最后设置密码每个用户的属性:
此帐户密码上次更改的日期和时间。此值存储为一个大整数,表示自 1601 年 1 月 1 日 (UTC) 以来的 100 纳秒间隔数。如果此值设置为 0,并且 User-Account-Control 属性不包含 UF_DONT_EXPIRE_PASSWD 标志,则用户必须在下次登录时设置密码。
pwdLastSet
您可以对 Active Directory 运行查询来查找几天前的用户,然后强制这些用户重置密码。
最后,要同时为多个用户设置“下次登录时必须更改密码”标志,您可以使用dsmod
:
dsmod user <user_dn> -mustchpwd {yes|no}
为每个很久以前的dsmod
用户创建一个包含命令的批处理文件,瞧!您就有了密码策略实施机制。pwdLastSet
答案2
设置您的策略。将更改告知您的用户,并让他们知道新策略将在某一天生效。前一天提醒他们。然后使用类似此 Visual Basic 的脚本强制用户在下次登录时更改密码。
Set objUser = GetObject _
("LDAP://CN=myerken,OU=management,DC=Fabrikam,DC=com")
objUser.Put "pwdLastSet", 0
objUser.SetInfo
答案3
这是非常主观的。它可能归结为以下一些因素:
- 是否存在推动这一变化的事件?
- 该组织通常能够多快传播此类信息?
- 这一变化如果实施或不实施会造成多大的混乱?
- 有多少支持可用于支持这一变革?
它是组织、为何需要变革以及变革的沟通和实施速度的综合体。它会因不同的组织及其具体情况而有很大差异。