Как сделать скрипт, который добавляет сетевой маршрут? - PullRequest
5 голосов
/ 20 июля 2010

Scenary

SO Windows 7

Мне нужно подключиться к удаленному узлу через cisco vpn.Иногда сеть назначения хоста совпадает с локальной сетью.Пример (частичный вывод команды ipconfig):

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

Мне нужно подключиться к хосту 192.168.1.11 в удаленной сети через Vpn Затем мне нужно добавить новый маршрут (в этой конфигурации весь трафик к 192.168.1.xxx - это маршрут к локальной сети) Вывод маршрута печати начинается с:

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

И команда:route add 192.168.1.11 mask 255.255.255.255 192.168.100.12 metric 1 if 17

Проблема:Ip на адаптере Cisco не является статическим, я не могу добавить маршрутизацию с модификатором -p (постоянный). Когда не подключен и повторно соединен, мне нужно искать NewIp и добавлять правильный маршрут:route add 192.168.1.11 mask 255.255.255.255 «NewIP» metric 1 if 17Для меня легко (но скучно) писать все эти команды каждый раз:

ipconfig  etc
route print etc
route add etc

Мне нужен скрипт bat или powershell, чтобы добавить правильный маршрут.Скрипт ищет ip на адаптере Cisco и запускает команду route add с найденным Ip-шлюзом.

Спасибо

PD Извините, мой плохой английский

Ответы [ 3 ]

8 голосов
/ 05 августа 2013

Я попробовал ответ renegm, и свойство Index дает мне неверное значение.Это работает для меня (Juniper VPN здесь, но та же проблема) - обратите внимание InterfaceIndex вместо 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
4 голосов
/ 21 июля 2010

Я решил это. (Я новичок в PowerShell, но проблема очень проста)

$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
1 голос
/ 25 августа 2017

Это довольно старое обсуждение, но вы можете использовать следующую команду PowerShell для создания маршрута ПОСЛЕ подключения к VPN:

Add-VpnConnectionRoute -ConnectionName "You VPN Name Here" -DestinationPrefix 10.0.0.0/8

Это работало в Windows 10.

...