当尝试使用DFS URL访问SmbFile时,jcifs库失败。但是,当我使用dfsutil
返回的UNC时就可以使用。
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication( domain, user, pass );
SmbFile folder = new SmbFile(path,auth);
如果path
设置为
smb://mydomain.example.com/ourdfs/go/to/my/folder
通话失败
Exception in thread "main" jcifs.smb.SmbException: The network name cannot be found.
但是使用解析名称调用成功
dfsutil diag viewdfspath \\mydomain.example.com\ourdfs\go\to\my\folder
The DFS Path <\\mydomain.example.com\ourdfs\go\to\my\folder>
resolves to -> <\\someserver.example.com\sharename$\my\folder>
然后以下网址适用于path
smb://someserver.example.com/sharename$/my/folder
如何设置jcifs以正确处理DFS,即不必通过dfsutil
转换url?
答案 0 :(得分:0)
解决方案是设置WINS配置。 IPCONFIG /ALL
将显示以下信息:
Connection-specific DNS Suffix . : MYDOMAIN.EXAMPLE.COM
Description . . . . . . . . . . . : Ethernet Connection
Physical Address. . . . . . . . . : DE-AD-BE-EF-F0-0D
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IPv4 Address. . . . . . . . . . . : 10.10.1.42(Preferred)
Subnet Mask . . . . . . . . . . . : 255.0.0.0
Lease Obtained. . . . . . . . . . : December 3, 2018 09:03:04 AM
Lease Expires . . . . . . . . . . : December 9, 2018 09:03:04 AM
Default Gateway . . . . . . . . . : 10.10.1.1
DHCPv4 Class ID . . . . . . . . . : O-mobile
DHCP Server . . . . . . . . . . . : 10.10.11.13
DNS Servers . . . . . . . . . . . : 10.10.4.48
10.10.4.56
Primary WINS Server . . . . . . . : 10.10.1.59
Secondary WINS Server . . . . . . : 10.10.2.58
NetBIOS over Tcpip. . . . . . . . : Enabled
随后的配置项必须设置如下:
jcifs.netbios.wins=10.10.1.59
或通过设置jcifs.Config.setProperty()