You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AD技术问询:能否重置过期密码时钟及取消永不过期后登录异常

关于AD密码过期相关问题的解答

问题1:能否在AD中重置过期密码的时钟?

完全可以!这里的“重置时钟”本质上就是更新用户的密码最后设置时间(pwdLastSet属性),让密码过期的倒计时重新从头开始。给你几个实用的操作方式:

  • PowerShell(最推荐):用Set-ADUser命令直接修改属性,精准又高效,而且不会强制用户立刻改密码(只要原密码符合当前策略):
    Set-ADUser -Identity "用户名/用户SamAccountName" -Replace @{PasswordLastSet=(Get-Date)}
    
  • AD用户和计算机图形界面:如果习惯用GUI,右键目标用户→「重置密码」,不过这个操作会让用户下次登录必须更改密码,适合不需要保留原密码的场景。
  • ADSI Edit(进阶方式):打开ADSI Edit定位到用户对象,编辑pwdLastSet属性,输入当前时间对应的文件时间戳(可以用PowerShell先获取:(Get-Date).ToFileTime()),不过一般没必要,PowerShell更省心。

问题2:取消「密码永不过期」后用户立即无法登录的问题

这个坑很多人都踩过!原因很简单:当用户被设为「password never expires」时,AD会暂停密码过期的计算,但**pwdLastSet属性还是保留着用户上次设置密码的原始时间**。一旦取消这个选项,AD会立刻校验这个时间和你的密码过期策略——如果原始时间已经超过了策略规定的过期天数,就会直接触发密码过期,导致用户没法登录。

解决步骤分两种情况:

提前预防(还没取消设置时)

  1. 先给用户重置密码过期时钟:用上面的PowerShell命令更新PasswordLastSet为当前时间;
  2. 再取消用户属性里的「password never expires」选项;
  3. 批量处理的话,可以用这个脚本一次性搞定所有目标用户:
    # 筛选所有密码永不过期的用户,批量更新并取消设置
    Get-ADUser -Filter {PasswordNeverExpires -eq $true} -Properties PasswordNeverExpires, PasswordLastSet | ForEach-Object {
        Set-ADUser -Identity $_.SamAccountName -Replace @{PasswordLastSet=(Get-Date)}
        Set-ADUser -Identity $_.SamAccountName -PasswordNeverExpires $false
    }
    

已经出现问题后的应急修复

如果已经取消设置导致用户登不上了:

  1. 先重新勾选用户的「password never expires」,让用户临时能登录;
  2. 重置该用户的密码过期时钟(用PowerShell或重置密码);
  3. 再次取消「password never expires」,这时候用户的密码过期倒计时已经重新开始,就不会再触发过期了。

之后你就可以引导用户通过自助凭证管理器来管理自己的密码啦。

内容的提问来源于stack exchange,提问作者John

火山引擎 最新活动