批处理/ CMD在OpenVPN命令行

时间:2017-09-15 12:52:38

标签: batch-file cmd dns openvpn connection-leaks

我正在尝试使用OpenVPN创建自动连接和断开文件,除此之外,将我的WiFi适配器DNS设置为0.0.0.0(因为DNS泄漏)并恢复正常。

这是我目前的代码:

@echo off
SETLOCAL EnableExtensions
set EXE=openvpn-gui.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto NOT
goto RUNS

:NOT
taskkill /im openvpn-gui.exe /f
taskkill /im openvpn.exe /f
netsh interface IPv4 set dnsserver "WiFi" dhcp
ipconfig /flushdns
exit

:RUNS
cd "C:\Program Files\OpenVPN\bin"
openvpn-gui.exe --connect "vpn-connection-file.ovpn" 

netsh interface IPv4 set dnsserver "WiFi" static 0.0.0.0 both
ipconfig /flushdns
exit

我的代码的第一行检查openVPN是否正在运行,如果是,则转到RUN,否则转到NOT。

NOT结束OpenVPN并将DNS恢复正常。

RUN正在打开OpenVPN,并建立与我的配置文件的连接。

然而,在这一行之后:

openvpn-gui.exe --connect "vpn-connection-file.ovpn" 

CMD不会继续使用其余代码。它停止了,白色空格键闪烁。 (不可能输入任何键或其他任何键。) 检查其余代码是否已执行为负。

有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:2)

CMD等待openvpn-gui.exe结束。试试start

start openvpn-gui.exe --connect "vpn-connection-file.ovpn"