Posso automaticamente ROUTE ADD xxxx dopo aver effettuato una connessione VPN in Windows 7?


8

dopo aver effettuato una connessione VPN per il mio lavoro / qualunque cosa, attualmente devo andare al prompt dei comandi e aggiungere manualmente un percorso.

per esempio.

ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 METRIC 1 o qualunque sia il comando.

È possibile che ciò avvenga automaticamente dopo aver effettuato correttamente una connessione VPN?

Risposte:


4

Se vuoi renderlo un processo in 1 passaggio, puoi creare un file batch che esegue rasdial per automatizzare la tua connessione VPN e quindi esegue un ROUTE ADD:

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

Ciò presuppone che ti stai collegando a una VPN Microsoft, ma potresti script il client OpenVPN allo stesso modo:

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

Il client OpenVPN dovrebbe aggiungere automaticamente le route appropriate, supponendo che sia configurato correttamente.
MDMarra,

Vero per i percorsi assegnati / inviati dal server, ma potrebbero esserci percorsi aggiuntivi che si desidera definire.
nedm,

OOO! ora è interessante :) Era un errore di battitura nella riga ROUTE ADD .. ma a parte questo .bat non funziona perché deve essere eseguito in modalità privilegiata :(
Pure.Krome

Sì, "route add" richiede i privilegi di amministratore, ma dovresti essere in grado di fare clic con il pulsante destro del mouse sull'icona della barra delle applicazioni del prompt dei comandi e scegliere "Esegui come utente diverso" e inserire le credenziali di amministratore, quindi eseguire il file bat dalla riga di comando. Vorrei posizionare il file .bat in qualsiasi directory che in tal modo lascia il prompt dei comandi di default, quindi puoi semplicemente digitare 'vpnscript.bat' o qualunque cosa dopo il login senza cambiare directory. In alternativa, control-shift-click dovrebbe anche aprire il prompt dei comandi in modalità privilegiata / admin w / UAC.
nedm,

Con il suggerimento PowerShell di @ErikvO, lo si imposta e lo si dimentica, utilizzando normalmente la connessione VPN senza i privilegi di amministratore.
Laurent,

19

Se disponi di più VPN, potresti riscontrare che, quando si connettono in ordine casuale, i loro ID di interfaccia cambiano. In tal caso il normale ROUTE -P ADD 10.0.0.0 MASK 255.255.0.0 10.0.0.1 IF 42non funziona. La prossima volta che la VPN si connette potrebbe avere un numero di interfaccia diverso.

Powershell ha a disposizione un cmdlet che aggiunge route alla connessione VPN e le rimuove nuovamente quando la VPN viene disconnessa: Add-VpnConnectionRoute . Funziona senza dover specificare l'ID dell'interfaccia.

La sintassi di base è così:

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

Dopo aver inserito questo comando, i percorsi verranno creati / rimossi automaticamente al momento della connessione / disconnessione della VPN.


Dovrebbe essere la risposta accettata. A proposito, non sapevo che "PowerShell" prima di allora ... Non capisco perché quei comandi non sono disponibili in CMD. Un'altra stupidità di Microsoft ...
Laurent,

+1 per il Poweshell. Mi colpisce perché MS non aggiunge un'altra scheda nelle impostazioni IP - a parte il fatto che stanno ancora costruendo pannelli di controllo sostitutivi per l'interfaccia utente (attualmente) moderna / mobile.
Mayyit,

1
Il mio Windows 7 non ha quel comando!
LatinSuD

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

Lo sto usando per gestire le connessioni che si sovrappongono alla sottorete aggiungendo route statiche per host sulla sottorete remota - server e simili.


Questo è esattamente ciò di cui avevo bisogno poiché sto usando Windows Server 2008. La soluzione PoswerShell non ha funzionato.
Michael Coxon,

Questo ha funzionato perfettamente per il mio client Windows 7. Grazie.
Vic,

Non è persistente e richiede che la VPN sia già connessa, giusto?
LatinSuD

È corretto. Il problema che avevo era con la sovrapposizione della sottorete, quindi avere percorsi persistenti avrebbe causato problemi. Volete che avvenga solo dopo che la connessione è attiva. Ho esaminato l'utilizzo dei trigger di eventi tramite l'utilità di pianificazione, ma non l'ho mai fatto funzionare in modo coerente. Dovrebbe essere possibile creare un servizio abbonandosi a SENS per farlo (penso che la connessione e la disconnessione dell'interfaccia siano coperte da SENS), ma navigare nel contesto di sicurezza per generare un altro processo con diritti di amministratore è problematico a causa di Controllo dell'account utente. Immagino che possa essere fatto consentendo l'interazione desktop e i prompt UAC, ho appena
Stuart Smith

1

Potresti rendere il percorso persistente (penso con route -p) quindi non è necessario inserirlo ogni volta. Se si utilizza openVPN, il server può inviare una route al client: push "route 192.168.1.0 255.255.255.0"ad esempio. Con altri server VPN non lo so, ma immagino che anche loro possano avere un'opzione simile.


quindi non può essere realizzato, lato client .. e su richiesta?
Pure.Krome

Non conosco alcun modo per farlo (con openVPN) sul lato client e non in modo permanente diverso dalla risposta di nedm, ma sarà necessario eseguire il file bat con privilegio di amministratore. Penso che un percorso persistente non sia una cattiva soluzione se non è possibile modificare la configurazione del server openVPN.
Laurent,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.