Как известно, в Windows из коробки напрочь отсутствует способ автоматического дозвона, в частности установления надёжного соединения по VPN, чтобы оно не разрывалось никогда, и всегда восстанавливалось в случаях временного исчезновения интернета. Такая возможность давно есть в роутерах, например Mikrotik, но что делать, если в сети такого роутера нет и соединение необходимо поднять на Windows, причём исключительно средствами системы? Для этого нам на помощь приходит планировщик заданий и команда бесконечного дозвона из командной строки.

Первое, что нужно сделать — создать само VPN-соединение с нужными нам настройками, назовём его SmartVPN. По ходу мастера настройки обязательно нужно отметить «Разрешить использовать это подключение другим пользователям», так как дозваниваться мы будем от имени системы.

В параметрах соединения убираем галочки:

  • Отображать ход подключения
  • Запрашивать имя, пароль, сертификат и т. д.
  • Включать домен входа в Windows
  • Перезвонить при разрыве связи

При необходимости убираем использование основного шлюза в удалённой сети и корректируем другие настройки.

Второй этап состоит из создания задачи по запуску бесконечного цикла, который будет проверять и восстанавливать соединение, если оно не подключено. Для этого в планировщике создаём задачу, которая будет запускаться при включении компьютера и запускаться от имени системы, а действием указываем запуск программы:

cmd /c "for /l %x in (0,0,0) do (rasdial SmartVPN Login Pass & timeout 5)"

Где cmd — программа командной строки, а остальное — её параметры, при этом SmartVPN — название соединения, Login и Pass — логин и пароль для дозвона соответственно.

Команда timeout делает паузу в 5 секунд перед следующей попыткой дозвона, при этом если соединение уже установлено, то ничего не произойдёт. Также timeout не существует на WinXP/2003, так что если вы где-то её используете, нужно будет городить замену через ping. Запуск от имени системы позволяет скрыть консольные окна и дозвон можно будет увидеть разве что в процессах и по запущенной задаче в планировщике. Существует не консольная программа дозвона rasphone, где пароль указывать не нужно (будет использован сохранённый в системе для этого соединения), но пользоваться ей никак нельзя — при ошибках она будет выводить графические сообщения и дозвон прекратится.

P. S. Если вы хотите сделать так, чтобы задача не висела в планировщике в статусе работы, замените «cmd /c» в начале команды на «cmd /c start cmd /c», таким образом процесс дозвона дальше не будет зависеть от планировщика.

Готовый xml-файл задачи для импорта: SmartVPN.xml [3 KB]

Автоматический дозвон VPN-соединения в Windows

Автоматический дозвон VPN-соединения в Windows: 8 комментариев

  • 21.08.2018 в 13:46
    Постоянная ссылка

    Использую VPN немного для другой цели — для доступа к домашней и дачной сети извне.
    У меня нет «белого IP» и приобрести его невозможно у текущего оператора.
    DDNS работает, но и это бесполезно, потому что соединения извне тупо закрыты провайдером.
    Поэтому использую вот такой VPN сервис — https://vpnki.ru Они не предоставляют выход в интернет, но объединяют мои туннели — один с дачи, другой с смартфона.
    Вдруг кому-то это поможет.

    Ответить
  • 04.02.2019 в 18:56
    Постоянная ссылка

    Когда у меня ещё небыло роутера и провод с интернетом был воткнут в комп, я убрал галочки в параметрах соединения:
    Отображать ход подключения
    Запрашивать имя, пароль, сертификат и т. д.

    и оставил:
    Включать домен входа в Windows
    Перезвонить при разрыве связи

    А ярлык соединения перетащил в пуск — автозапуск и и при входе в систему сразу шел дозвон. Такой вот ламер вэй)
    Описанный в статье способ гороздо грамотней — админ вэй.

    Ответить
  • 15.02.2019 в 17:46
    Постоянная ссылка

    «Запуск от имени системы позволяет скрыть консольные окна и дозвон можно будет увидеть разве что в процессах и по запущенной задаче в планировщике.» — я импортировал ваш xml при создании задачи планировщика (изменил только своё название и логин с пассом) и все равно при загрузке юзера на рабочий стол вылетает консольное окно и отображает каждые 5 секунд скрипт. Поставил в настройках задания галочку Hidden — все равно видно консольное окно..

    Ответить
    • 15.02.2019 в 18:28
      Постоянная ссылка

      да, забыл сразу сказать — Win7 64-bit Ultimate, все обновления (включая сегодняшний вам UpdatePack7R2, огромное вам за него спасибо, каждый месяц жду его выпуска)

      Ответить
      • 15.02.2019 в 18:47
        Постоянная ссылка

        Убедитесь, что задача выполняется от имени системы, иначе это может означать, что под системной записью работаете вы — такое может быть, например, при повреждённом профиле.

        Ответить

Добавить комментарий для Макс Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.