Osc*_*vis 7 vpn routing events task-scheduler xpath
我正在尝试在我的 W10 上在成功建立 VPN 连接后执行自动“路由”命令。我根据这里针对 W7 的简短描述进行了尝试,但看起来很相似,但我无法使其工作。
我调查过,Windows 事件 20225 在 W10(RAS 连接建立)上仍然相同。所以这是对的......为什么不触发路由命令?连接 VPN 后,我可以在应用程序事件查看器中看到以 RasClient 作为源的 20225 事件。
当然,在尝试所有这些东西之前,我尝试使用-proute 命令上的参数“持久地”创建路由,但它不起作用,因为在每次启动时添加此路由时 VPN 接口不存在,所以不是一个有效的选择。所以一定要安排。
我以相同的结果使用提升的权限完成了任务,并标记了“以提升的权限执行”复选框。该任务显示为“从未开始”。如果我尝试手动启动它,它会说“任务计划程序服务不可用。任务计划程序将尝试重新连接到它”。但是任务调度器工作正常,其他任务可以手动调度或执行并且它们正在工作。
有人成功地做到了这一点吗?
编辑 我尝试更改触发器部分以将“基本”更改为“自定义”,并且我在 XML 字段中放置了一个 XPath 过滤器以尝试搜索事件 ID:
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(EventID=20225)]]</Select>
</Query>
</QueryList>
Run Code Online (Sandbox Code Playgroud)
它既不奏效。
问题是一样的。该任务显示为“从未启动”。
EDIT2 我在事件查看器中注意到,在成功的 VPN 连接 (id 20225) 之后,总会有另一个事件 (id 900) 可能相关……也许一切都已设置,但有些东西阻止了触发器……我不知道不知道。看到这个截图(对不起,截图是西班牙语):
小智 12
在 Win 10 上,Powershell有一个 cmdlet 可以在 VPN 连接上添加路由,并在 VPN 断开连接时再次删除它们:Add-VpnConnectionRoute。它无需指定接口 ID 即可工作。
基本语法是这样的:
Add-VpnConnectionRoute -ConnectionName "VPN 连接名称" -DestinationPrefix 10.0.0.0/16
输入此命令后,将在 VPN 连接/断开连接时自动创建/删除路由。
最后我无法让它发挥作用......所以,悲伤地决定寻找替代方案。我使用 rasdial 制作了一个批处理文件,它的作用就像一个魅力。唯一的“问题”是路由命令需要以提升的权限启动。这是因为我在参数runas中添加了一个/savedcred参数,该参数只会询问一次密码,然后它就会自动工作。然后,对于VPN,您可以输入密码(明文!)或set mypass="*"每次都询问密码。
这是我的代码:
@echo off
cls
echo.
REM put your VPN connection name here
set myvpn="Your VPN name"
REM put your user here
set myuser="foo"
REM put your pass here. Leave * for asking
set mypass="testpass"
REM put your win admin user here
set winadmin="administrator"
REM put your network route here
set network="192.168.8.0"
REM put your network mask here
set mask="255.255.255.0"
REM put your gateway mask here
set gateway="192.168.1.1"
ipconfig | find /i %myvpn% > nul 2>&1
if %ERRORLEVEL% == 0 (
echo "VPN already connected. Disconnecting..."
echo.
rasdial %myvpn% /disconnect
runas.exe /user:%winadmin% /savedcred "route delete %network% mask %mask% %gateway%"
) else if %ERRORLEVEL% == 1 (
echo "VPN not connected. Connecting..."
echo.
rasdial %myvpn% %myuser% %mypass%
runas.exe /user:%winadmin% /savedcred "route add %network% mask %mask% %gateway%"
)
Run Code Online (Sandbox Code Playgroud)
我希望这对某人有帮助。
| 归档时间: |
|
| 查看次数: |
15683 次 |
| 最近记录: |