如何检测具有特定名称的活动VPN连接

问题描述 投票:1回答:1

我发现了一个article,它列出了几种检测活动VPN的方法:

  1. 使用Win32_NetworkAdapter: Get-WmiObject -Query "Select * from Win32_NetworkAdapter where Name like '%VPN%' and NetEnabled='True'"
  2. 使用Win32_NetworkAdapterConfiguration: Get-WmiObject -Query "Select * from Win32_NetworkAdapterConfiguration where Description like '%VPN%' and IPEnabled='True'"
  3. 检查是否存在活动的PPP适配器 ipconfig | Select-String 'PPP adapter'
  4. 检查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带来模糊的结果。

所以我的问题是:

  1. 有没有办法更方便(使用组合方法?)方法3,以便能够检查连接名称?
  2. 方法1和2为什么不适合我?像这样查询它 $adapters = (Get-WmiObject -Query "Select * from Win32_NetworkAdapter") foreach($a in $adapters) { Write-Host $a.Description } 给我一个适配器名称列表,其描述中没有提到“VPN”: WAN Miniport(SSTP)WAN Miniport(IKEv2)WAN Miniport(L2TP)WAN Miniport(PPTP)等......
powershell powershell-v2.0 vpn windows-server-2008-r2
1个回答
0
投票

最简单的方法是使用Powershell Commamdlet

Get-VPNconnection -Name "VPN Name"

报告的其中一个项目是“ConnectionStatus”。此外,如果VPN是All用户连接,您还必须使用带有命令行开关的开关“-AllUserConnection”

© www.soinside.com 2019 - 2024. All rights reserved.