Facile à mettre en œuvre un redirecteur SMB de Windows?

J'aimerais implémenter un petit outil qui me permet de le faire sur Windows ce que je peux déjà le faire facilement sur n'importe quel autre OS - spécifier un serveur SMB à distance par les deux adresse IP et port. Nativement, Windows ne sera pas faire SMB sur tout les ports autres que ceux 445 ou 139 (de son choix), et je suis malade de jouer whack-a-mole avec les solutions de contournement pour les diverses Mauvaises Choses que Microsoft ne cesse d'ajouter à Windows de faire un fsck en place de tunnels SMB via SSH redirection de port.

Ce que j'ai à l'esprit est une petite application en ligne de commande qui permettez-moi de faire quelque chose comme

netsubst servername -i IP -p PORT

Ce serait de travailler main dans la main avec un chauffeur? dll? que des crochets dans Windows comme un redirecteur SMB, mais de l'analyse d'un tableau de noms de serveurs mis en place par netsubst au lieu de chercher leur place sur le réseau afin de savoir ce connecter. Donc, j'aimerais être capable de faire

net use X: //servername/nom_partage /utilisateur:nom d'utilisateur *

de la manière habituelle, sauf qu'au lieu de Windows à la recherche pour //servername sur les ports 445 ou 139 de ce que les machines qu'il a pu trouver, il irait directement à l'adresse IP, le port de PORT; et si l'IP qui est arrivé à être 127.0.0.1 et le PORT qui est arrivé à être quelque chose transmis à un autre endroit via ssh, il serait Tout Simplement de Travailler, et je n'aurait plus besoin de traiter avec les murs de stupide que Windows met autour de l'accès à localhost les ports 139 et 445.

Je l'ai trouver ce dont j'ai besoin est quelque chose qui s'apparente à l' //vboxsvr d'hôtes plus que VirtualBox utilise pour faire de l'hôte partage de fichiers, mais probablement plutôt plus simple puisqu'il n'aurait pas besoin d'un retour complet à la fin - dans mon monde idéal, les seulement fonctionnalités de Windows j'avais besoin de le remplacer est la partie qui établit la connexion initiale à distance au serveur SMB. Mais avant que je commence la déchirure dans la VirtualBox code source, quelqu'un peut-il suggérer un moyen plus facile de faire ceci, ou peut-être de me pointer à la documentation de Microsoft sur la mise en œuvre de redirecteur SMB?

Je sais que vous pouvez faire de l'ip/port de redirection dans un TDI ou PAM pilote de filtre, mais je ne connais pas vraiment les détails de leur développement. Peut-être que quelqu'un a déjà écrit un simple, générique ip/port de redirection de pilote?
Assez sûr que j'ai besoin d'obtenir au-dessus de tous TCP/IP plutôt que le glouglou sur dans ses tripes.
Comment à ce sujet (minek.com/?port_redirection)? Un peu hackish, mais je ne pense pas que vous pouvez le rendre plus élégant, sans l'aide d'un pilote de filtre. Windows n'est pas Linux.
Le problème n'est pas tant la redirection de port; cette partie est facile. Le problème est que Windows veut un contrôle exclusif sur les ports 445 et 139 sur tous réseau local interfaces, tout en n'ayant aucun moyen d'exécuter SMB sur un autre port. Donc oui, un pilote de filtre est ce que je vais avoir besoin, et je suis à la recherche de la façon la plus rapide de compétences pour la rédaction d'un.

OriginalL'auteur flabdablet | 2011-02-25