利用PowerShell在Windows 10中实现VPN自动触发
通过Windows 10的PowerShell命令,可以轻松设置应用程序在启动时自动触发VPN连接。这意味着当您使用特定应用程序时,无需手动考虑VPN连接,一切皆可自动进行。
要使用此功能,您首先需要在计算机上配置VPN服务。如果您还没有VPN服务,请先添加。
如何添加VPN自动触发
在Windows 10上完成VPN连接设置后,您需要以管理员身份打开PowerShell。点击“开始”按钮,输入“PowerShell”,右键点击“Windows PowerShell”,然后选择“以管理员身份运行”。
在弹出的提示框中,点击“是”以允许程序访问您的计算机。
在PowerShell窗口中,输入以下命令,并将 <vpnconnection>
替换为您的VPN连接名称,<apppath>
替换为您想使用VPN的应用程序的文件路径:
Add-VpnConnectionTriggerApplication -Name "" –ApplicationID " "
请务必在命令中包含引号。
按下Enter键执行命令。PowerShell会提示您,默认情况下拆分隧道功能是禁用的。要继续操作,您必须先确认并启用此功能,才能设置自动触发。
当提示出现时,输入“Y”,然后再次按Enter键完成操作。
您必须启用拆分隧道,才能实现无需人工干预的VPN连接自动触发。
当应用程序启动时触发VPN连接,拆分隧道将阻止Windows将所有网络流量都通过VPN路由。相反,它会拆分流量,只有指定的应用程序的数据才会通过VPN传输。
在PowerShell中输入 Set-VpnConnection -Name “<vpnconnection>” -SplitTunneling $True
并将 <vpnconnection>
替换为您的VPN名称(同样,请使用引号将其括起来),然后按Enter键。
接下来,为了防止您意外关闭应用程序时连接终止,您可以设置一个超时缓冲时间来重新启动应用程序。
在PowerShell中输入 Set-VpnConnection -Name “<vpnconnection>” -IdleDisconnectSeconds <idleseconds>
并按Enter键。将 <vpnconnection>
替换为您的连接名称,将 <idleseconds>
替换为等待连接终止的秒数。
现在,当应用程序关闭时,Windows将在终止VPN连接之前等待10秒。您可以根据需要设置此数字,或者完全省略此步骤。
如何查看哪些应用程序自动触发VPN
有几种方法可以查看您设置了哪些应用程序来触发VPN连接的启动。您可以使用PowerShell命令,也可以在文件资源管理器中编辑电话簿文件。
如果VPN突然启动,而您不确定原因,可以使用以下任一方法来确定是哪个应用程序触发了它。
使用PowerShell命令
要使用此方法,请点击“开始”按钮并输入“PowerShell”。右键点击“Windows PowerShell”,然后从菜单中选择“以管理员身份运行”。
在弹出的提示框中,点击“是”以允许程序访问您的计算机。
在PowerShell窗口中,输入以下命令,并将 <vpnconnection>
替换为您的VPN连接的名称,然后按Enter键:
Get-VpnConnectionTrigger -ConnectionName
在我们的示例中,该命令检索了VPN连接“VPN Canada”的触发属性并将其显示在下方。
使用文件资源管理器
另一种选择是在文件资源管理器中查找拨号 电话簿文件 。您可以使用文本编辑器打开它,并查看触发VPN的应用程序列表。
电话簿文件是Windows用于收集和指定建立远程访问连接(RAS)所需信息的标准方式。此文件包含IP地址、端口、调制解调器设置等信息,以及我们要查找的信息——触发连接的应用程序。
首先,打开文件资源管理器,并将以下目录粘贴到地址栏中,将 <user>
替换为当前用户名,然后按Enter键:
C:UsersAppDataRoamingMicrosoftNetworkConnectionsPbk
右键单击“rasphone.pbk”,然后选择一个文本编辑器来打开此文件。
此文件包含计算机上的所有VPN连接,因此,如果您有多个VPN,可能需要筛选查找所需的信息。每个应用程序都存储在“ClassicApplicationIDs”函数下,直接显示其文件路径。
幸运的是,如果您不想滚动查找每个应用程序,大多数文本编辑器都具有查找功能。 按Ctrl+F,在文本字段中输入“ClassicApplicationIds”,然后按Enter键。
如何删除VPN自动触发
如果您不小心添加了错误的应用程序,或者不再希望在启动特定应用程序时触发VPN,您可以使用PowerShell中的类似命令将其删除。
要删除VPN自动触发,请点击“开始”按钮,然后输入“PowerShell”。右键点击“Windows PowerShell”,然后从菜单中选择“以管理员身份运行”。
在弹出的提示框中,点击“是”以允许程序访问您的计算机。
在PowerShell窗口中,输入以下命令,并将 <vpnconnection>
替换为您的VPN连接名称,将 <apppath>
替换为应用程序的路径:
Remove-VpnConnectionTriggerApplication -Name "" –ApplicationID " "
PowerShell会提示您确认是否要从自动触发列表中删除该应用程序。输入“Y”并按Enter键。
对要从列表中删除的每个应用程序重复此步骤。
现在,当您启动指定的应用程序时,Windows将启动VPN连接,并通过它发送流量,而无需任何第三方软件。