最简单的方法来实现Windows的SMBredirect器?

我想实现一个小工具,让我可以在Windows上做任何其他操作系统上已经可以轻松完成的工作 – 通过IP地址和端口指定远程SMB服务器。 从本质上讲,Windows不会在除445或139之外的任何其他端口上进行SMB(它的select),而且我厌倦了玩微软的各种各样的坏事情的解决办法,微软一直在向Windows添加隧道SMB通过SSH端口转发。

我想到的是一个小命令行应用程序,可以让我做类似的事情

netsubst servername -i IP -p PORT

这将与司机携手? dll的? 它作为一个SMBredirect器挂钩到Windows中,但扫描一个由netsubst设置的服务器名称表,而不是在networking上查找它们,以便找出连接的内容。 所以我可以做

净使用X://服务器名/共享名/用户:用户名*

按照通常的方式,除了Windows可以find任何机器的端口445或139上的服务器名称,而不是直接寻址IP,port PORT; 如果IP碰巧是127.0.0.1,而PORT恰好是通过ssh转发到其他地方的话,那么这将是All Just Work,而且我不再需要处理Windows对本地主机端口139和445。

我认为我需要的东西类似于vboxsvr客户端,VirtualBox用来做主机文件共享,但可能相当简单,因为它不需要一个完整的后端 – 在我理想的世界里, 唯一的 Windowsfunction,需要更换的部分是build立到远程SMB服务器的初始连接的部分。 但是在我开始讨论VirtualBox源代码之前,有人可以提出一个更简单的方法来完成这个任务,或者也可以指向我有关实现SMBredirect器的Microsoft文档。

写司机并不容易, 它需要很多领域特定的知识。 以下是一些开始的链接:

如何编写Windows驱动程序
开发一个Windows驱动程序
MSDN上的WDK文档

祝你好运。

你也可能会发现这个 (PDF)有帮助。

\\server@port\share是WebDAV的有效语法。 将@port置于UNC路径表示法的那一刻,网络使用将从SMB变为WebDAV。 您不能更改SMB正在使用的端口。

–Ben

net use * \\servername@XXXX\其中XXXX是一个端口号。 我已经在Windows 7上检查了它,所以它的工作完美