![在 SMBv2 上使用密码过早关闭 SMB/CIFS 会话(系统错误 1312)](https://linux22.com/image/648117/%E5%9C%A8%20SMBv2%20%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%AF%86%E7%A0%81%E8%BF%87%E6%97%A9%E5%85%B3%E9%97%AD%20SMB%2FCIFS%20%E4%BC%9A%E8%AF%9D%EF%BC%88%E7%B3%BB%E7%BB%9F%E9%94%99%E8%AF%AF%201312%EF%BC%89.png)
在尝试向 NetApp 共享发出“网络使用”时,我遇到了一种非常特殊的情况。
特定用户需要通过 CIFS 发出扫描,但该用户(具有完全读/写访问权限)收到“发生系统错误 1312 - 指定的登录会话不存在。它可能已被终止。”
这种情况需要以下命令:
net use \\ShareHostname\Share /user:DOMAIN\user /persistent:no [password]
下面的数据包捕获显示了这次尝试。
如果我发出相同的命令而不为当前登录的用户(不同于所需用户并且仅具有读取权限)提供密码,则该命令将成功完成。
net use \\ShareHostName\Share /user:DOMAIN\user2 /persistent:no
此问题源于将应用程序从 Win2k3 机器移至同一域中的 Win2k8 机器时。有趣的是,在新机器上无法验证的帐户在 Win2k3 机器上却可以使用。
在检查中,我验证了两台机器的 GPO“网络访问:不允许存储用于身份验证的密码和凭据”在两台机器上都处于“启用”状态,并且无法更改。
我确实在努力缩小这个问题的范围,并非常感激有关额外的故障排除步骤或可能的解决方案的提示。
编辑:
- 显然,这两个系统之间唯一观察到的差异是通过 SMBv1(Win2k3)到 SMBv2(Win2k8)与 NetApp 的通信。然而,真正打破它的区别是,当为 SMBv2 提供密码时(无论用户是谁),都会发生系统错误 1312。但如果没有提供密码(对于当前登录的用户),那么它将成功完成身份验证。
答案1
不幸的是没有真实的解决此问题的方法,因为 NetApp 确实与 Microsoft 就使用 SMBv2 或 SMBv3 的 Windows Server 2008 存在分歧。
解决此特定错误的唯一方法是让网络管理员禁用“网络访问:不允许存储用于身份验证的密码和凭据”的 GPO 设置,这并不是向 NetApp 提出案例或在此处发布信息的初衷。
对于感兴趣的人,NetApp 提供了以下内容:
错误编号:837425
错误类型:互联网金融
描述:在某些情况下,尝试连接 CIFS 共享会失败,并显示以下错误消息:“发生系统错误 1312。指定的登录会话不存在。它可能已被终止。”
该问题出现在 SMB 2 和 SMB 3 Windows 客户端(例如 Windows 7、Vista 和 Windows 8)中。当连接到共享时指定凭据时会出现该问题,例如以下示例:
net use * \\server\share /user:domain\user password
此问题不会发生在 SMB 1 客户端(例如 Windows XP)上,因此使用 SMB 1 客户端连接共享是一种解决方法。但是,请注意,即使在 SVM 上禁用 SMB 2 和 SMB 3 并且客户端使用 SMB 1 进行连接,此问题仍会发生在 SMB 2 和 SMB 3 客户端(例如 Windows 7 和 Windows 8)上。
笔记:当错误 746314 的修复可用时,它将成为该问题的解决方法。
答案2
您可以检查“网络访问:不允许存储网络身份验证的密码和凭据”是否被禁用。 https://technet.microsoft.com/en-us/library/jj852185(v=ws.11).aspx 这也许能解决你的问题。