无法在Windows上访问SMB共享,​​但可以在Linux上访问

我在最近设置的Samba共享中遇到了一些问题。

该份额的configuration如下:

[data] path = /media/data available = yes valid users = admin read only = no browseable = yes public = yes writable = yes 

我已经能够通过smbclient访问Linux和OS X上的共享,但在Windows上,我得到一个“无法访问”错误(0x80070002,系统找不到指定的文件)。 我在Windows上使用的语法是\\<server-ip>\data ,但\\<server-ip>\media\data也不起作用。

更新:我设法通过Cygwin在Windows上编译Samba,并在其下运行smbclient ,但仍无法通过Windows上的本机客户端连接到共享。

更新2:部分突破! 问题出在一个registry项, ProviderOrder ,由Windows用来确定使用哪个SMB客户端。 之前的NFS实验也改变了我的想法。 为了解决这个问题,我将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder设置为: vmhgfs,hgfs,LanmanWorkstation,RDPNP 。 这让我尽可能的login提示,之后我得到了另一个错误,0x800704cf。

更新3:成功! 这里错误的组件是我的适配器的“Microsoftnetworking客户端”软件包。 一旦安装,我所要做的就是重置适配器和我的共享连接无缝。

我设法解决了我的问题。

有两个组件出现故障: ProviderOrderregistry项和缺less的适配器程序包。

故障一:

Windows上的SMB将查看HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\下的ProviderOrderregistry项,以确定要使用哪种SMB / CIFS实现。 如果没有执行或列出不正确的,Windows将放弃。 要修复它,只需将此string附加到已经在ProviderOrderstring: mhgfs,hgfs,LanmanWorkstation,RDPNP

故障二:

在我的情况下,似乎我的适配器只是因为某种原因禁用了“Microsoftnetworking客户端”。 要在任何适配器上启用它,请转到networking和共享中心,单击“更改适配器设置”,然后右键单击到活动适配器上的“属性”。 从那里select“安装…”,然后select“客户”上的“添加…”。 只需从出现的窗口中select“Microsoftnetworking客户端”,然后单击“确定”。 然后,重置您的适配器或重新启动。

正确的path是\\数据。 pipe理员用户是在Linux和Samba中添加的? 在Samba中,使用二进制smbpasswd添加用户。

我已经读过,你需要将这些指令包含在你的conf中以供Windows使用。

 hosts allow = 127.0. xxxx etc hosts deny = 0.0.0.0/0 

我有类似的问题,但尚未解决。