5

设想

所以视窗 7

我需要通过 cisco VPN 连接到远程主机。有时主机目标网络与本地网络相同。示例(ipconfig 命令的部分输出):

以太网适配器 Cisco Vpn 适配器:
   IPv4 地址。. . . . . . . . . . : 192.168.100.12
   子网掩码 。. . . . . . . . . . : 255.255.255.0

无线 LAN 适配器 无线网络连接:
   IPv4 地址。. . . . . . . . . . : 192.168.1.74
   子网掩码 。. . . . . . . . . . : 255.255.255.0

我需要通过 Vpn 连接到远程网络上的主机 192.168.1.11 然后我需要添加新路由(在此配置中,到 192.168.1.xxx 的所有流量都是到本地网络的路由)路由打印的输出开始于:

接口列表
 17...00 05 9a 3c 78 00 ......思科系统 VPN 适配器
 12...00 16 44 ea 74 58 ......戴尔无线 1395 WLAN 迷你卡

命令是:
route add 192.168.1.11 mask 255.255.255.255 192.168.100.12 metric 1 if 17

问题:
Cisco 适配器上的 Ip 不是静态的,我无法使用修饰符 -p(永久)添加路由 当断开连接并重新连接时,我需要查找 NewIp 并添加正确的路由:
route add 192.168.1.11 mask 255.255.255.255 «NewIP» metric 1 if 17
对我来说,它很容易(但很无聊)写下所有这个命令每次:

ipconfig 等
路线打印等
路线添加等

我需要一个 bat 或 PowerShell 脚本来添加正确的路线。脚本在 Cisco 适配器上查找 IP 并运行命令 route add 并创建 IP 网关。

谢谢

4

3 回答 3

10

我尝试了 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 $if
于 2013-08-05T08:51:48.533 回答
4

我解决了。(我是 PowerShell 的新手,但问题很简单)

$adapter=Get-WmiObject Win32_NetworkAdapterConfiguration|
    Where-Object { $_.Description -match "Cisco Systems VPN Adapter"}
$GateWay=$adapter.IP地址[0]
$if=$adapter.Index
route add 192.168.1.11 mask 255.255.255.255 $Gateway metric 1 if $if
于 2010-07-21T18:47:56.420 回答
1

这是一个相当古老的讨论,但您可以在连接到 VPN 后使用以下 PowerShell 命令创建路由:

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

它适用于 Windows 10。

于 2017-08-25T19:56:24.757 回答