Adicionando rota automaticamente após uma conexão VPN bem-sucedida no Windows 10

4

Eu estou tentando no meu W10 executar um comando "route" automático após uma conexão VPN bem-sucedida. Eu tentei com base nesta breve descrição aqui que é para o W7 mas parece tão similar, mas não consigo fazer funcionar.

  • Minha conexão VPN está ok. Ele se conecta e desconecta a qualquer momento sem problemas.
  • Meu comando de rota está ok. Se eu inicio manualmente depois de conectar a VPN, tudo funciona bem.
  • Obviamente, minha conexão VPN não usa o gateway remoto como um gateway padrão. Eu quero fazer "dividir o tunelamento".

Eu investiguei e o evento do Windows 20225 ainda é o mesmo no W10 (RAS Connection Establishement). Então, isso está certo ... por que não está acionando o comando de rota? Eu posso ver os eventos 20225 com RasClient como fonte no visualizador de eventos do aplicativo depois de conectar a VPN.

É claro que, antes de tentar todas essas coisas, tentei criar a rota "persistentemente" usando o parâmetro -p no comando route, mas isso não funciona porque a interface VPN não existe quando essa rota é adicionada cada inicialização, por isso não é uma opção válida. Então deve ser agendado.

Eu fiz a tarefa com privilégios elevados com o mesmo resultado e marquei a caixa de seleção "Executar com privilégios elevados". A tarefa aparece como "nunca iniciada". E se eu tentar lançá-lo manualmente, ele diz que "o serviço Agendador de Tarefas não está disponível. O Agendador de Tarefas tentará se reconectar a ele". Mas o agendador de tarefas está funcionando bem, outras tarefas podem ser agendadas ou executadas manualmente e estão funcionando.

Alguém conseguiu isso com sucesso?

EDITAR Eu tentei mudar a parte do gatilho para alterar "Basic" para "Custom" e eu coloquei um filtro XPath no campo XML tentando procurar o id do evento: <QueryList> <Query Id="0" Path="Application"> <Select Path="Application">*[System[(EventID=20225)]]</Select> </Query> </QueryList>

Nem funcionou.

O problema é o mesmo. A tarefa aparece como "Nunca iniciado".

EDIT2 Eu observei no visualizador de eventos que sempre, depois de uma conexão VPN bem-sucedida (id 20225), há sempre outro evento (id 900) que pode ser relacionado ... talvez tudo esteja configurado, mas algo está bloqueando o gatilho ... não sei. Veja esta imagem (desculpe, a imagem está em espanhol):

    
por OscarAkaElvis 27.12.2016 / 13:58

1 resposta

2

Finalmente eu não consegui fazer funcionar ... então, infelizmente, decidi procurar uma alternativa. Eu fiz um arquivo em lote usando rasdial que funciona como um encanto. O único "problema" é que o comando route precisa ser iniciado com privilégios elevados. Isso porque eu coloquei um runas com o argumento /savedcred , que pedirá apenas uma vez para a senha e, em seguida, funcionará automaticamente. Então, para a vpn você pode colocar sua senha (em claro!) Ou deixar set mypass="*" para pedir a senha toda vez.

Aqui está o meu código:

@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%"
)

Espero que isso ajude alguém.

    
por 29.12.2016 / 15:10