Автоматическое переподключение к VPN при разрыве соединения в Windows

Встроенный VPN клиент Windows в случае разрыва подключения по-умолчанию не пытается переподключиться к VPN серверу. В этом случае пользователю приходится вручную подключаться к VPN. В Windows есть несколько инструментов, которые позволят настроить автоматическое переподключение к VPN после потери соединения.

В графическом интерфейсе VPN клиента Windows отсутствуют настройки переподключения. Однако вы можете настроить их через конфигурационный файл rasphone.pbk , который хранится в профиле пользователя ( %userprofile%AppDataRoamingMicrosoftNetworkConnectionsPbk ). В этом файле хранятся параметры всех профилей VPN подключений пользователя.

Профили VPN подключений, доступные для всех пользователей Windows, хранятся в файле %ProgramData%MicrosoftNetworkConnectionsPbkrasphone.pbk .

Откройте файл rasphone.pbk с помощью текстового редактора, найдите секцию для нужного VPN профиля (например, [PPTP-VPN] ) и промотайте к параметрам:

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

Настройка переподключения VPN в файле rasphone.pbk

Однако, настройки из файла rasphone.pbk не всегда корректно отрабатывают для всех возможных случаев. Поэтому рекомендуется автоматизировать переподключение к VPN с помощью задания планировщика, которое будет переподключаться к VPN в случае разрыва соединения или подключения компьютера к сети (Wi-Fi или Ethernet). Нас интересуют следующие события:

EventID Источник Описание
20226 RasClient (журнал Application) The user username dialed a connection named VPNConnectionName which has terminated. The reason code returned on termination is 829.
10000 NetworkProfile (журнал Microsoft-Windows-NetworkProfile/Operational) Network Connected

Событие 20026 rasclient - VPN подключение было завершено

Откройте Task Sheduler ( taskschd.msc ) и создайте новое задание планировщика (Create Task). Укажите имя задания.
Перейдите на вкладку Trigger и создайте два триггера для событий (Begin the task: On event ):

  1. Log: Application , Source: RasClient , EventID: 20226
  2. Log: Microsoft-Windows-NetworkProfile/Operational , Source: NetworkProfile , EventID: 10000

Задание планировщика для переподключения к VPN после потери соединения

Теперь нужно настроить действие, которое будет выполняться при появлении любого их этих событий. Перейдите на вкладку Actions -> нажмите New .

  • Выберите действие: Start a program
  • Program/script: %windir%System32rasdial.exe
  • В аргументах укажите: "ИмяВашегоVPNподключения"

rasdial.exe - подключиться с помощью настроенного профиля VPN

В этом примере для подключения используется VPN профиль с сохраненным паролем. Если вы хотите указать имя и пароль для VPN подключения, задайте их так:
"ИмяВашегоVPNподключения" username password

Вы можете вывести список VPN подключений в Windows с помощью PowerShell :

Get-VpnConnection|select name,ServerAddress,TunnelType

Get-VpnConnection - список настроенных VPN подключений в Windows

Протестируете задание планировщика: отключите на время сетевой кабель от компьютера или отключитесь VPN. Проверьте, что после подключения сети, Windows автоматически переподключается к вашему VPN серверу.

Ранее мы показывали, как аналогичным образом можно настроить задание автоматического отключения от Wi-Fi, если компьютер подключен Ethernet сети .

EnglishRussianUkrainian