清除windows凭据管理器中旧smb凭证是首要步骤,需通过control keymgr.dll进入“windows凭据”删除匹配服务器的条目,并执行net use * /delete /y清空会话;其次调整lan manager身份验证级别为“发送ntlmv2响应”,启用经典本地账户验证模式;最后确认服务端用户已正确添加至samba数据库并启用。
遇到 smb 共享提示“密码错误”或“登录失败”,多数不是账号输错,而是认证机制、凭证缓存或系统策略不匹配导致的。核心思路是:先清旧凭证、再对齐认证方式、最后确认账户权限是否生效。
清理本地残留的 SMB 凭证
Windows 会缓存历史连接凭据,哪怕改了密码,旧缓存仍可能强制使用错误密码。
- 打开控制面板 → 用户账户 → 管理你的凭据 → Windows 凭据
- 在“普通凭据”或“Windows 凭据”列表中,找到与目标共享服务器 IP 或主机名相关的条目(如 \192.168.1.100 或 SERVER-NAME)
- 点击展开 → 选择“编辑”或“删除”,彻底移除该条目
- 同时建议执行命令清空所有当前 SMB 会话:
以管理员身份运行命令提示符,输入:
net use * /delete /y
确保使用正确的账户类型和格式
微软账户登录的 Windows,默认无法直接用邮箱名作为 SMB 登录用户名——必须转为本地账户格式或显式指定权威。
- 若共享端是 Windows,且你用微软账户(如 xxx@outlook.com)登录系统:
访问时用户名需写成 计算机名用户名(例如 DESKTOP-ABCjohn),而不是邮箱 - 更稳妥的做法:在共享电脑上新建一个同名本地账户(如用户名 john,密码设为与微软账户一致),并赋予该账户对共享文件夹的读写权限
- Android/iOS 访问时,用户名字段通常不支持邮箱,只接受纯用户名(如 john),且不能带 @ 符号
调整系统级认证策略
Win10/Win11 默认启用较严格的 NTLM 和 SMB 安全策略,可能拒绝旧协议或弱认证方式。
- 按 Win+R 输入 secpol.msc → 进入“安全选项” → 找到:
网络安全:LAN Manager 身份验证级别
改为:发送 NTLMv2 响应;拒绝 LM 和 NTLM(推荐兼容性与安全性平衡) - 同样在 secpol.msc 中,找到:
网络访问:本地账户的共享和安全模型
改为:经典 - 本地用户以自身身份验证 - 若仍不行,可临时启用不安全来宾登录(仅限可信内网):
按 Win+R 输入 gpedit.msc → 计算机配置 → 管理模板 → 网络 → Lanman 工作站 → 启用 启用不安全的来宾登录
检查服务端账户与 Samba 配置(Linux/ NAS 场景)
如果是 Linux Samba 或 NAS(如飞牛、群晖)提供共享,问题常出在用户未正确注册进 Samba 数据库。
- 确认该用户已添加为 Samba 用户(不只是系统用户):
smbpasswd -a username(首次添加)
smbpasswd -e username(启用账户) - 检查 /etc/samba/smb.conf 中对应共享段是否允许该用户:
确保有 valid users = username 或未限制访问 - 重启服务:
sudo systemctl restart smbd nmbd(Ubuntu/Debian)
或通过 NAS 后台重启 SMB 服务











