我在我的 Windows 机器上设置了一个共享目录,并授予了 username@workgroup 的完全控制权限。
当我尝试使用 smbclient 连接到带有 Linux 的 Windows 机器时,我收到错误消息NT_STATUS_DUPLICATE_NAME
。这是成绩单:
$ smbclient -U username -W workgroup -L //windows-machine
Enter username's password:
Domain=[workgroup] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
tree connect failed: NT_STATUS_DUPLICATE_NAME
如果我故意输入错误的用户名、密码或工作组,我会得到一个不同的错误:NT_STATUS_LOGON_FAILURE
. 所以看起来我得到了正确的其他信息。
我在 /etc/hosts 中放置了一个指向windows-machine
其 IP 地址的条目。Windows 机器的 NetBIOS 名称有所不同。
有谁知道这个错误是什么意思?
那是你的问题。它很容易通过 Windows 机器上的注册表黑客来修复。有关详细信息,请参阅http://support.microsoft.com/kb/281308。
更新
上面链接的原始支持文章已消失(感谢 Microsoft)。新文章是SMB 文件服务器共享访问不成功通过 DNS CNAME 别名。
Joril还指出,一个服务器可以有多个 NetBIOS 名称。这是通过编辑注册表项来完成的:
并添加额外的名称。
您可能会收到该错误,因为 Windows 机器无法将自己识别为您正在连接的机器。(使用错误的身份验证信息会更改错误,因为此问题要到连接过程的后期才会出现。)
尝试将其作为其 IP 号连接,而不是
windows-machine
. 如果这有效,则它确认名称是正在发生的事情,您可以通过使 PDC 了解自身windows-machine
或仅使用 IP 号来解决它。您应该使用“-m”标志来指定您将使用的最大协议版本。默认情况下它是“NT1”,来自 smbclient 的手册页:
我怀疑“NT1”版本依赖netbios的东西,不像SMB2和next。
所以用“-m SMB3”或“-m SMB2”再试一次,你也会在性能上受益很多。
您可以使用 -I 选项并提供 IP 地址。
您不能使用 /etc/hosts 中的机器名称,也不能使用来自 DNS 服务器的名称。
您必须使用机器的 IP 地址或在 Windows 中指定的机器的 NetBIOS 名称。
在 Windows XP 中查找 NetBIOS 名称:
'.'