与Samba连接到Windows共享将返回“ NT_STATUS_DUPLICATE_NAME”


10

我已经在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名称有所不同。

有人知道这个错误是什么意思吗?

Answers:


9

Windows计算机的NetBIOS名称有所不同

那是你的问题。Windows计算机上的注册表黑客很容易修复该问题。有关详细信息,请参见http://support.microsoft.com/kb/281308

更新资料

上面链接的原始支持文章已消失(感谢Microsoft)。新文章是SMB文件服务器共享无法通过DNS CNAME别名访问

Joril还指出,服务器可以具有多个NetBIOS名称。这是通过编辑注册表项完成的:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\OptionalNames

并添加额外的名称。


1
我想知道为什么不只是在补丁中解决这个问题。
尼尔2009年

这不是错误,它是经过专门设计的。可能出于安全考虑,尽管我不确定为什么要这么做。如果主机文件或duff DNS中有恶意条目,我想它可以阻止您不小心连接到错误的服务器。就个人而言,我在所有服务器上都放置了注册表黑客。
约翰·雷尼

链接看起来无效(404)。无论如何,关键应该是HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking
Joril

...或更好的是,OptionalNames
Joril

6

您可能会收到该错误,因为Windows机器不了解自己是否被识别为您所连接的对象。(使用错误的身份验证信息会更改此错误,因为直到连接过程中稍后才会出现此问题。)

尝试以IP地址而不是IP地址连接到它windows-machine。如果这样可行,它可以确认名称是怎么回事,您可以通过使PDC理解其本身windows-machine或仅使用IP号来解决它。


3

您应该使用“ -m”标志来指定将要使用的最大协议版本。默认情况下,它是“ NT1”,来自smbclient的手册页:

-m|--max-protocol protocol
    This allows the user to select the highest SMB protocol level that
    smbclient will use to connect to the server. By default this is set
    to NT1, which is the highest available SMB1 protocol. To connect
    using SMB2 or SMB3 protocol, use the strings SMB2 or SMB3
    respectively. Note that to connect to a Windows 2012 server with
    encrypted transport selecting a max-protocol of SMB3 is required.

我怀疑“ NT1”版本依赖netbios,与SMB2和next不同。

因此,使用“ -m SMB3”或“ -m SMB2”再试一次,您也会从性能上受益匪浅。


2

您可以使用-I选项并提供IP地址。

smbclient -U username -W workgroup -L //windows-machine  -I <machine-ipaddr>

0

您不能使用/ etc / hosts中的计算机名称,也不能使用DNS服务器的名称。

您必须使用计算机的IP地址或Windows中指定的计算机的NetBIOS名称。

在Windows XP中查找NetBIOS名称:

  1. 右键单击“我的电脑”
  2. 点击“属性”
  3. 点击“计算机名称”标签
  4. 在第一个期间之前,请阅读“计算机全名”字段 '.'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.