Windows Samba/CIFS 问题排查与小贴士

Windows访问SMB共享的时候 一个服务器下多个用户的时候会提示 你没有权限访问xxx, 请与网络管理员联系请求访问权限 但又找不到地方可以重新登录SMB, 此时需要使用命令行(震怒):

net use 查看目前所有的链接

net use <路径> /delete 找到对应服务器的已建立的链接, 并删除 名为$IPC的链接也要删除.

net use * /delete 或者使用删除全部的SMB链接.

net use \\<服务器IP>\<Share> /USER:<用户名> <密码> /PERSISTENT:YES 输入新的用户名和密码 注意, 如果删除链接之后直接在Explorer里双击打开的话还是会使用原来的账号密码.

net use <盘符>: \\<服务器IP>\<Share> /USER:<用户名> <密码> /PERSISTENT:YES 添加一个网络映射 执行这个命令不要使用管理员权限, 否则映射出来的磁盘不能在普通用户的文件管理器里看到.

如果访问同一个服务器用了多个账户, 则net use命令会遇到报错:

1
2
3
发生系统错误 1219。

不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次。

此时, 先尝试按照上述命令清除已经建立的链接. 如果还不行, 可以看下Windows凭据管理器里是否有预设账号密码, 如果有则删除. 如果以上都没问题的话可以尝试重启 Workstation 服务 (任务管理器里叫 LanmanWorkstation) 使用服务单元管理器的 重新启动 或者下面的命令(需要管理员权限):

1
2
net stop workstation
net start workstation

Workstation服务描述: 使用 SMB 协议创建并维护客户端网络与远程服务器之间的连接。如果此服务已停止,这些连接将无法使用。如果此服务已禁用,任何明确依赖它的服务将无法启动。

规避同一服务器只能使用一个账号的限制: Windows对此的限制是服务器名维度, 所以可以尝试使用多个指向相同IP的域名使用不同账户来访问 (例如hosts文件, 自定义dns等) 以达到实际上多账户访问同一服务器的效果.

参考

Accessing a Windows share with a different username

“net use” does not create drives in Explorer on Windows 10

Net Use Error 1219 - I just want to mount a network share

How can I clear the “authentication cache” in Windows 7 to a password protected samba share?

How to Clear Saved Credentials for Network Share or Remote Desktop Connection

Samba+Windows: Allow multiple connections by different users?

深入NAS协议系列: 召唤SMB2 OpLock/Lease