故障现象:
openvpn一直能用的密码突然无法使用,日志报错如下:AD认证失败 auth-failure

故障排查:
AD域先看一下是否账户过期:
powershell输入dsa.msc进入Active Directory用户和计算机,查找问题用户huangweiqing,由下图可知账户还没过期

查找huangweiqing密码是否过期
确认密码是否已过期。
确认密码是否处于临期状态。
确认是否被要求下次登录改密。
记录最近一次密码修改时间。
Get-ADUser huangweiqing -Properties PasswordExpired,PasswordLastSet,LockedOut,Enabled,AccountExpirationDate,badPwdCount,lastLogonTimestamp,userPrincipalName,memberOf |
Select-Object Name,Enabled,LockedOut,PasswordExpired,PasswordLastSet,AccountExpirationDate,userPrincipalName,badPwdCount,lastLogonTimestamp

上图中:PasswordExpired : True表示AD 侧把这个用户的密码判定为已过期。
- AD 当前认为这个账号的密码已过期
- OpenVPN 用 LDAP 插件去做认证时,通常会把这种情况表现成:
- invalid credentials
- wrong username or password
- AUTH_FAILED
所以表面看像“密码错了”,本质上很可能是:密码过期了,LDAP bind 被 AD 拒绝。
检查用户使用的密码策略
确认该用户最终应用的是哪套密码策略,而不是只看域默认策略。(Get-ADUserResultantPasswordPolicy huangweiqing 没有返回内容这通常表示 没有单独细粒度密码策略,也就是此用户使用的是域默认策略)
Get-ADUserResultantPasswordPolicy huangweiqing
验证域密码策略
命令行:
#验证域默认策略
Get-ADDefaultDomainPasswordPolicy
#也可以只看最大密码期限:
(Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
#再确认一下这个用户有没有设置“密码永不过期”
Get-ADUser huangweiqing -Properties PasswordNeverExpires,PasswordExpired,PasswordLastSet |
Select-Object Name,PasswordNeverExpires,PasswordExpired,PasswordLastSet
由上图可知:
#1. 域默认密码策略是 365 天
MaxPasswordAge : 365.00:00:00
#2. 该用户上次设置密码时间是 2025/3/12 15:26:47
PasswordLastSet : 2025/3/12 15:26:47
#3. 当前 AD 明确判定该用户密码已过期
PasswordExpired : True
PasswordNeverExpires : False
页面检查域密码策略
- 打开 组策略管理
gpmc.msc - 展开:
林域suitbim.com
- 找到并编辑:
- Default Domain Policy
- 进入:
- 计算机配置
- 策略
- Windows 设置
- 安全设置
- 账户策略
- 密码策略


故障原因:
所以逻辑就是:
- 域里默认密码有效期 = 365 天
huangweiqing的密码最后设置时间 = 2025/3/12- 到 2026/3/12 左右正好满一年
- 因为这个用户 没有勾选“密码永不过期”
- 所以 AD 判定密码过期
- OpenVPN 的 LDAP 插件去做认证时,被 AD 拒绝
- 客户端就显示成“密码错误”
解决方案:
1. 重置密码解决

2. 修改域密码策略的密码最大有效期
3. 修改用户密码策略为永不过期
