【发布时间】:2017-12-25 16:33:23
【问题描述】:
我找到了一个article,其中列出了几种检测活动 VPN 的方法:
-
使用 Win32_NetworkAdapter:
Get-WmiObject -Query "Select * from Win32_NetworkAdapter where Name like '%VPN%' and NetEnabled='True'" -
使用 Win32_NetworkAdapterConfiguration:
Get-WmiObject -Query "Select * from Win32_NetworkAdapterConfiguration where Description like '%VPN%' and IPEnabled='True'" -
检查是否存在活动的 PPP 适配器
ipconfig | Select-String 'PPP adapter' -
检查 IPv4 路由表
Get-WmiObject -Query "Select * from Win32_IP4RouteTable where Name like '10.0.99.%' or Name like '10.15.99.%'"
在我的情况下,方法 1,2 和 4 根本不起作用。第三种方法效果很好,真的足够了。但据我了解,配置多个 VPN 连接会给方法 3 带来模棱两可的结果。
所以我的问题是:
- 有没有更具体的方法(可能使用组合方法?)方法 3,以便能够检查连接名称?
-
为什么方法 1 和 2 对我不起作用?像这样查询它
$adapters = (Get-WmiObject -Query "Select * from Win32_NetworkAdapter") foreach($a in $adapters) { Write-Host $a.Description }给我一个适配器名称列表,在描述中没有提到“VPN”:
WAN 微型端口 (SSTP) WAN 微型端口 (IKEv2) WAN 微型端口 (L2TP) WAN 微型端口 (PPTP) 等等...
【问题讨论】:
-
好吧,您能否在具有 2 个活动 VPN 连接的 PC 上检查
ipconfig的输出,以辨别它们是否以某种方式存在差异并据此进行过滤?在最坏的情况下你会得到ppp adapter2 次,但我相信它们会有所不同,你可以找到一种过滤东西的方法
标签: powershell powershell-2.0 vpn windows-server-2008-r2