Puis-je automatiquement ROUTE ADD xxxx après avoir établi une connexion VPN dans Windows 7?


8

après avoir établi une connexion VPN à mon travail / quoi que ce soit, je dois actuellement aller dans l'invite de commande et ajouter manuellement un itinéraire.

par exemple.

ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 METRIC 1 ou quelle que soit la commande.

Est-il possible que cela se produise automatiquement après avoir réussi à établir une connexion VPN?

Réponses:


4

Si vous souhaitez en faire un processus en une étape, vous pouvez créer un fichier batch qui exécute rasdial pour automatiser votre connexion VPN, puis effectue un AJOUT D'ITINÉRAIRE:

rasdial "connection name" username password ('*' to prompt for password)
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 

Cela suppose que vous vous connectez à un VPN Microsoft, mais vous pouvez créer un script pour le client OpenVPN de la même manière:

openvpn c:\path\to\config-file.ovpn
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 

Le client OpenVPN doit ajouter automatiquement les routes appropriées, en supposant qu'il est configuré correctement.
MDMarra

Vrai pour les itinéraires attribués / envoyés depuis le serveur, mais vous pouvez définir des itinéraires supplémentaires.
nedm

OOO! maintenant c'est intéressant :) était une faute de frappe dans la ligne ROUTE ADD .. mais en plus que le .bat ne fonctionne pas car il doit fonctionner en mode privilégié :(
Pure.Krome

Oui, `` route add '' nécessite des privilèges d'administrateur, mais vous devriez pouvoir cliquer avec le bouton droit sur l'icône de la barre des tâches de l'invite de commande et choisir `` Exécuter en tant qu'utilisateur différent '' et entrer les informations d'identification d'administrateur, puis exécuter le fichier bat à partir de la ligne de commande. Je voudrais placer le fichier .bat dans le répertoire qui laisse ainsi l'invite de commande par défaut, de sorte que vous pouvez simplement taper 'vpnscript.bat' ou quoi que ce soit après la connexion sans changer de répertoire. Alternativement, control-shift-click devrait également ouvrir l'invite de commande en mode privilégié / admin avec UAC.
nedm

Avec l'astuce powershell de @ErikvO, vous la configurez et l'oubliez, en utilisant la connexion VPN normalement sans avoir besoin des privilèges d'administrateur.
Laurent

19

Si vous avez plusieurs VPN, vous pouvez rencontrer le problème suivant: lorsqu'ils se connectent dans un ordre aléatoire, leurs ID d'interface changent. Dans ce cas, la normale ROUTE -P ADD 10.0.0.0 MASK 255.255.0.0 10.0.0.1 IF 42ne fonctionne pas. La prochaine fois que le VPN se connectera, il pourra avoir un numéro d'interface différent.

Powershell dispose d'une applet de commande disponible qui ajoute des itinéraires sur la connexion VPN et les supprime à nouveau lorsque le VPN est déconnecté: Add-VpnConnectionRoute . Cela fonctionne sans avoir à spécifier l'ID d'interface.

La syntaxe de base est la suivante:

Add-VpnConnectionRoute -ConnectionName "VPN Connection Name" -DestinationPrefix 10.0.0.0/16

Après avoir entré cette commande, les routes seront créées / supprimées automatiquement lors de la connexion / déconnexion du VPN.


Doit être la réponse acceptée. BTW Je ne connaissais pas ce "PowerShell" avant cela ... Je ne comprends pas pourquoi ces commandes ne sont pas disponibles dans CMD. Une autre bêtise de Microsoft ...
Laurent

+1 pour le Poweshell. Je comprends pourquoi MS n'ajoute pas un autre onglet dans les paramètres IP - à part le fait qu'ils construisent toujours des panneaux de contrôle de remplacement pour l'interface utilisateur (actuellement) moderne / mobile.
Mayyit

1
Mon Windows 7 n'a pas cette commande!
LatinSuD

3
netsh interface ipv4 add route [destination/prefixlength] "[interface/connection name]"

J'utilise cela pour gérer les connexions qui se chevauchent en sous-réseau en ajoutant des routes statiques pour les hôtes sur le sous-réseau distant - serveurs et similaires.


C'est exactement ce dont j'avais besoin car j'utilise Windows Server 2008. La solution PoswerShell n'a pas fonctionné.
Michael Coxon

Cela a parfaitement fonctionné pour mon client Windows 7. Je vous remercie.
Vic

Ce n'est pas persistant, et cela nécessite que le VPN soit déjà connecté, non?
LatinSuD

C'est correct. Le problème que j'avais était avec le chevauchement des sous-réseaux, donc avoir des routes persistantes causerait des problèmes. Vous ne voulez que cela ait lieu une fois la connexion établie. J'ai envisagé d'utiliser des déclencheurs d'événements via le planificateur de tâches, mais je ne l'ai jamais fait fonctionner de manière cohérente. Il devrait être possible de créer un service souscrivant à SENS pour le faire (je pense que la connexion et la déconnexion de l'interface sont couvertes par SENS), mais naviguer dans le contexte de sécurité pour engendrer un autre processus avec des droits d'administrateur est problématique en raison de l'UAC. J'imagine que cela peut être fait en permettant l'interaction avec le bureau et les invites UAC, je viens
Stuart Smith

1

Vous pouvez rendre l'itinéraire persistant (je pense avec route -p) afin que vous n'ayez pas besoin de le saisir à chaque fois. Si vous utilisez openVPN, le serveur peut envoyer un itinéraire au client: push "route 192.168.1.0 255.255.255.0"par exemple. Avec d'autres serveurs VPN, je ne sais pas, mais je suppose qu'ils peuvent également avoir une option similaire.


donc pas possible côté client .. et sur demande?
Pure.Krome

Je ne connais aucun moyen de le faire (avec openVPN) du côté client et pas permanent différent de la réponse de nedm mais il sera nécessaire d'exécuter le fichier bat avec des privilèges d'administrateur. Je pense qu'un itinéraire persistant n'est pas une mauvaise solution si vous ne pouvez pas modifier la configuration du serveur openVPN.
laurent
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.