5

Я пытаюсь на моем W10 выполнить автоматическую команду "route" после успешного VPN-соединения. Я попробовал его на основе этого краткого описания здесь , которая для W7 , но , кажется , очень похожи, но я не могу заставить его работать.

  • Мое VPN-соединение в порядке. Он подключается и отключается в любое время без проблем.
  • Моя команда маршрута в порядке. Если я запускаю его вручную после подключения VPN, все работает нормально.
  • Конечно, мое VPN-соединение не использует удаленный шлюз в качестве шлюза по умолчанию. Я хочу сделать "разделенное туннелирование".

Я исследовал, и событие Windows 20225 остается таким же на W10 (RAS Connection Installishement). Так что это правильно ... почему не запускается команда маршрута? Я вижу события 20225 с RasClient в качестве источника в средстве просмотра событий приложения после подключения VPN.

Конечно, прежде чем пытаться все это, я попытался создать маршрут "постоянно", используя параметр -p в команде route, но он не работает, потому что интерфейс VPN не существует, когда этот маршрут добавляется при каждой загрузке, поэтому не является допустимым вариантом. Так должно быть запланировано.

Я выполнил задание с повышенными привилегиями с тем же результатом и пометил также флажок "Выполнить с повышенными правами". Задача отображается как "никогда не запускается". И если я пытаюсь запустить его вручную, он говорит: «Служба планировщика заданий недоступна. Планировщик заданий попытается подключиться к нему ". Но планировщик задач работает нормально, другие задачи могут быть запланированы или выполнены вручную, и они работают.

Кто-нибудь добился этого успешно?

РЕДАКТИРОВАТЬ Я попытался изменить триггерную часть, чтобы изменить "Основные" на "Пользовательские", и я поместил фильтр XPath в поле XML, пытаясь найти идентификатор события: <QueryList> <Query Id="0" Path="Application"> <Select Path="Application">*[System[(EventID=20225)]]</Select> </Query> </QueryList>

Это тоже не сработало.

Проблема та же. Задача отображается как "Никогда не запускается".

EDIT2 Я заметил в средстве просмотра событий, что всегда, после успешного VPN-соединения (id 20225) всегда есть другое событие (id 900), которое может быть связано ... возможно, все настроено, но что-то блокирует триггер ... Я не знаю. Смотрите этот скриншот (извините, скриншот на испанском):

событие

2 ответа2

2

Наконец, я не смог заставить его работать ... так что, к сожалению, решил искать альтернативу. Я сделал пакетный файл, используя 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%"
)

Надеюсь, это кому-нибудь поможет.

2

На Win 10 у Powershell есть доступный командлет, который добавляет маршруты к VPN-соединению и снова удаляет их при отключении VPN: Add-VpnConnectionRoute. Работает без указания идентификатора интерфейса.

Основной синтаксис выглядит так:

Add-VpnConnectionRoute -ConnectionName "Имя VPN-подключения" -DestinationPrefix 10.0.0.0/16

После ввода этой команды маршруты будут создаваться / удаляться автоматически при подключении / отключении VPN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .