How to make a script that adds a network route?
Scenario
SO Windows 7
I need to connect to remote host via cisco VPN. Sometimes the host destination network is the same of local network. Example (Partial output of ipconfig command):
Ethernet adapter Cisco Vpn Adapter: IPv4 Address. . . . . . . . . . . : 192.168.100.12 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Wireless LAN adapter Wireless Network Connection: IPv4 Address. . . . . . . . . . . : 192.168.1.74 Subnet Mask . . . . . . . . . . . : 255.255.255.0
I need to connect to host 192.168.1.11 on the remote network via Vpn Then I need to add new route (in this configuration all traffic to 192.168.1.xxx are route to local network) The output of route print begining by:
Interface List 17...00 05 9a 3c 78 00 ......Cisco Systems VPN Adapter 12...00 16 44 ea 74 58 ......Dell Wireless 1395 WLAN Mini-Card
And the command is:
route add 192.168.1.11 mask 255.255.255.255 192.168.100.12 metric 1 if 17
Problem:
The Ip on Cisco adapter is not static, i can't route add with modifier -p (permanent) When disconected and reconnect I need look for the NewIp and add the correct route:route add 192.168.1.11 mask 255.255.255.255 «NewIP» metric 1 if 17
For me its easy (but boring) write all this commmands every time:
ipconfig etc route print etc route add etc
I need a bat or PowerShell script to add the correct route. The scrip look for t开发者_如何学Gohe IP on the Cisco adapter and run the command route add with IP gateway founded.
Thanks
I tried renegm's answer, and the Index property gives the wrong value for me. This worked for me though (Juniper VPN here, but the same problem) - note InterfaceIndex instead of Index:
$adapter=Get-WmiObject Win32_NetworkAdapterConfiguration|
Where-Object { $_.Description -match "Juniper Network Connect Virtual Adapter"}
$Gateway=$adapter.IPaddress[0]
$if=$adapter.InterfaceIndex
route add 192.168.1.3 mask 255.255.255.255 $Gateway metric 1 if $if
I solved it. (I'm a complete newbie in PowerShell, but problem is very simple)
$adapter=Get-WmiObject Win32_NetworkAdapterConfiguration| Where-Object { $_.Description -match "Cisco Systems VPN Adapter"} $GateWay=$adapter.IPaddress[0] $if=$adapter.Index route add 192.168.1.11 mask 255.255.255.255 $Gateway metric 1 if $if
This is a pretty old discussion, but you could use the following PowerShell command to create a route AFTER you're connected to VPN:
Add-VpnConnectionRoute -ConnectionName "You VPN Name Here" -DestinationPrefix 10.0.0.0/8
It worked on Windows 10.
精彩评论