Найти в Дзене
WinITPro.ru - Блог админа

AutoRedial для VPN соединений в Windows

C удивлением, правда небольшим, обнаружил, что в Windows, начиная с версии 8 и в Windows Server, начиная с 2008, Microsoft слегка «доработал напильником» диалог настроек VPN соединения. Точнее, урезал настраиваемые параметры на вкладке Options. Вместо того, что было привычно в Windows 7 и выглядело как: Методов несколько. Давайте по порядку. По мере возрастания, так сказать, сложности. Метод 1 — используем Notepad: Установить нужные параметры вручную. Для этого необходимо перейти в папку C:\Users\[USER]\AppData\Roaming\Microsoft\Network\Connections\Pbk\ Найти там (скорее всего единственный) файлик с именем rasphone.pbk. Это обычный текстовый файл, содерржащий настройки подключения к VPN Файл можно открыть с помощью notepad.exe (Блокнот) В общем случае, необходимо отыскать секцию, содержащую ваш VPN – например, такой [PPTP-VPN] А в ней отыскать строки (TADA!)/ Если ничего не меняли, то выглядеть будет примерно так: RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOn

C удивлением, правда небольшим, обнаружил, что в Windows, начиная с версии 8 и в Windows Server, начиная с 2008, Microsoft слегка «доработал напильником» диалог настроек VPN соединения. Точнее, урезал настраиваемые параметры на вкладке Options. Вместо того, что было привычно в Windows 7 и выглядело как:

Теперь убрали практически все и оставили только:
Теперь убрали практически все и оставили только:
И  возник закономерный вопрос– а как теперь настроить автоматическое  переподключение и количество попыток повтора соединения если связь  прервется?
И возник закономерный вопрос– а как теперь настроить автоматическое переподключение и количество попыток повтора соединения если связь прервется?

Методов несколько. Давайте по порядку. По мере возрастания, так сказать, сложности.

Метод 1 — используем Notepad:

Установить нужные параметры вручную. Для этого необходимо перейти в папку

C:\Users\[USER]\AppData\Roaming\Microsoft\Network\Connections\Pbk\

Найти там (скорее всего единственный) файлик с именем rasphone.pbk. Это обычный текстовый файл, содерржащий настройки подключения к VPN

Файл можно открыть с помощью notepad.exe (Блокнот)

В общем случае, необходимо отыскать секцию, содержащую ваш VPN – например, такой [PPTP-VPN]

А в ней отыскать строки (TADA!)/ Если ничего не меняли, то выглядеть будет примерно так:

RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOnLinkFailure=1

То есть опять “Microsoft за вас подумали и все решил”.

Но теперь вы знаете, где искать и менять необходимые параметры.

  • RedialAttempts=3 – количество попыток пере-подключиться (максимум 99)
  • RedialSeconds=60 – количество секунд между попытками пере-подключиться
  • IdleDisconnectSeconds=0 — сколько выжидать, чтобы понять что линия оборвалась (0 – не ждать вовсе)
  • RedialOnLinkFailure=1 — Перенабрать, если связь оборвалась? 1 – да, 0 — нет

Чтобы параметры применились, необходимо, как и раньше, переподключить VPN.

А потом верить, что Microsoft Windows все сделает за вас 🙂

Примечание: Замечено, что Windows Server 2012 может, по собственной инициативе, использовать папку C:\Users\[USER]\AppData\Roaming\Microsoft\Network\Connections\Pbk\_hiddenPbk и положить файл rasphone.pbk в эту папку.

Метод 2 – настраиваем простейшую задачу:

Создать в Task Scheduler задачу, которая будет запускать bat-файл со строкой подключения к необходимому VPN и настроить эту задачу, на запуск, скажем, каждые 5 минут.

Напомню, командная строка для подключения VPN соединения выглядит так

C:\windows\system32\rasdial.EXE entryname [username [password|*]] [/DOMAIN:domain]

Там еще параметры есть, но их, если интересно, посмотрите сами.

В задаче не забываем указать, что “запускать всегда”

Указать выполняемый файл, например, такой
Указать выполняемый файл, например, такой
Или сказать, чтобы запускался rasdial.exe (VPN User Password – это название вашего VPN-соединения имя_пользователя и ваш_пароль)
Или сказать, чтобы запускался rasdial.exe (VPN User Password – это название вашего VPN-соединения имя_пользователя и ваш_пароль)

Примечание. Как пользоваться утилитой rasdial мы уже показывали в статье Автозапуск VPN подключения

Запускать, с интервалом 5 минут, каждый день.
Запускать, с интервалом 5 минут, каждый день.
Метод 3. Настраиваем задачу “с вывертами” :)
Метод 3. Настраиваем задачу “с вывертами” :)
  1. Создаем задачу в Task Scheduler
  2. Определяем в задаче два триггера. Один с использованием XML запроса (по аналогии со статьей Запуск задания планировщика после завершения определенного задания)
<QueryList>

<Query Id="0" Path="Application">

<Select Path="Application">*[System[Provider[@Name='RasClient'] and (EventID=20226)]] and *[EventData[Data[4]='829' or '629']]</Select>

</Query>

</QueryList>

Примечание. Коды: 829 — Remote Disconnect, 629 -Client Disconnect

Второй на базе отслеживания события в Event Log’e:

  • Название лога: Microsoft-Windows-NetworkProfile/Operational
  • Источник : NetworkProfile
  • Event ID: 10000
  • В качестве запускаемой программы, выбираем rasdial.exe с параметрами vpn-name username password
  • Дополнительно, на вкладке Conditions, можно доопределить следующие параметры
-7

Примечание: Чтобы убедиться заработает такая задача или нет, создайте еще один триггер с Event ID = 10001. Этoт Event появляется при ручном отключении (disconnet) VPN. После этого попробуйте вручную отключить VPN. Соединение сразу же будет восстановлено.

Ну вот, собственно и все.

Примечание Все описанное работает и в Windows 7