【问题标题】:How does Active Directory mark a password expired?Active Directory 如何将密码标记为过期?
【发布时间】:2016-03-16 20:23:57
【问题描述】:
我们域的密码最长使用期限为 90 天。如果我在 90 天内未更改密码,Active Directory 会在我的用户帐户上设置哪些属性来表示我的密码已过期?
是pwdLastSet = 0吗?
它是否通过userAccountControl 将我的帐户标记为已禁用?还是只要求我在下次登录时更改密码?
我可以手动将特定用户帐户的密码标记为过期吗?
【问题讨论】:
标签:
active-directory
passwords
【解决方案1】:
没错。它设置pwdLastSet=0。您可以使用AuthenticablePrincipal.ExpirePasswordNow() 方法将密码标记为过期。
以下是如何使单个帐户的密码过期:
public static void ExpirePwdNow(string username)
{
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "yourdomain.com")
{
using (UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.UserPrincipalName, username))
{
if (user != null)
{
user.ExpirePasswordNow();
user.Save();
}
}
}
}
这就是它在 AD 中的样子。
注意*您可以使用 PowerShell 或 VB 脚本执行相同的操作。我不相信有办法通过 GUI 使密码过期,但我不能确定。