清理Windows凭据管理器中的旧凭据是最常见有效的解决方式,需通过control keymgr.dll打开,进入“普通凭据”删除匹配Samba服务器的条目,并重启资源管理器或注销重登。
这个问题通常不是服务器端真把账户锁死了,而是 windows 客户端本地缓存了错误凭据,反复用错的账号密码去尝试连接,触发了 smb 认证机制的“类锁定”行为——系统误判为账户被锁,实际是凭据冲突导致的假性锁定。
清理 Windows 凭据管理器中的旧记录
这是最常见也最有效的解决方式。Windows 会把访问 Samba 的用户名、密码自动存进凭据管理器,一旦存错或过期,后续所有连接都会复用它,不断失败并强化“已锁定”的提示。
- 按 Win + R,输入 control keymgr.dll 回车,打开“Windows 凭据管理器”
- 切换到“普通凭据”选项卡
- 查找与你的 Samba 服务器 IP 或主机名(如 192.168.1.100、samba-server)匹配的条目
- 点击右侧的向下箭头展开,选择“删除”
- 重启资源管理器(任务管理器 → 重启“Windows 资源管理器”)或直接注销重登
检查并重置本地账户锁定状态
如果该账户本身是 Windows 本机用户(比如你用本地账号 test 登录 Win11,又用 test 去连 Samba),多次输错可能真让 Windows 本地策略标记为锁定。
- 以管理员身份运行命令提示符,执行:
net user test /active:yes(启用账户)
net user test *(重设密码,按提示两次输入新密码) - 或者打开“计算机管理”→“系统工具”→“本地用户和组”→“用户”,右键目标账户 → “属性”,取消勾选“账户已禁用”,并确认“账户已锁定”状态未打钩
调整 LAN 管理器身份验证级别
Win10/11 默认提高认证安全等级,可能拒绝某些 Samba 服务端较宽松的身份验证方式,表现为“密码正确却报锁定”。关键注册表项是 LMCompatibilityLevel。
- 按 Win + R,输入 regedit,定位到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA - 找到 LMCompatibilityLevel 键值,**直接删除它**(不是改数值)
- 重启电脑,或运行 secpol.msc 打开本地安全策略,确认“网络安全:LAN 管理器身份验证级别”显示为“未定义”(即恢复默认行为)
确认 Samba 服务端未启用严格账户锁定策略
部分 Samba 配置(尤其配合 PAM 或 LDAP 时)会启用失败登录计数。虽然 Windows 客户端不直接受影响,但若服务端返回特定 NT 状态码(如 STATUS_ACCOUNT_LOCKED_OUT),Win11 可能将其映射为“引用的账户当前已锁定”。
- 登录 Samba 服务器,检查 /etc/samba/smb.conf 中是否含 passwd program、pam password change = yes 等联动系统账户的配置
- 临时在全局段添加:
obey pam restrictions = no
unix password sync = no
重启 smbd 服务测试 - 如使用独立 Samba 用户(smbpasswd -a 创建),确保该用户未被 pdbedit -Lv 显示为 locked











