- AutoRedial для VPN соединений Windows 8/2008/10/2012
- Автозапуск VPN в Windows
- RASDIAL. Установка VPN подключения из командной строки
- Автозапуск VPN подключения с помощью планировщика Windows
- Автозапуск VPN с помощью реестра
- Автоматическое подключение VPN с помощью автозагрузки
- Автостарт VPN с помощью системной службы
AutoRedial для VPN соединений Windows 8/2008/10/2012
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!)/ Если ничего не меняли, то выглядеть будет примерно так:
То есть опять “Microsoft за вас подумали и все решил”.
Но теперь вы знаете, где искать и менять необходимые параметры.
- RedialAttempts=3 – количество попыток пере-подключиться (максимум 99)
- RedialSeconds=60 – количество секунд между попытками пере-подключиться
- IdleDisconnectSeconds=0 — сколько выжидать, чтобы понять что линия оборвалась (0 – не ждать вовсе)
- RedialOnLinkFailure=1 — Перенабрать, если связь оборвалась? 1 – да, 0 — нет
Чтобы параметры применились, необходимо, как и раньше, переподключить VPN.
А потом верить, что Microsoft Windows все сделает за вас 🙂
Метод 2 – настраиваем простейшую задачу:
Создать в Task Scheduler задачу, которая будет запускать bat-файл со строкой подключения к необходимому VPN и настроить эту задачу, на запуск, скажем, каждые 5 минут.
Напомню, командная строка для подключения VPN соединения выглядит так
C:\windows\system32\rasdial.EXE entryname [username [password|*]] [/DOMAIN:domain]
Там еще параметры есть, но их, если интересно, посмотрите сами.
В задаче не забываем указать, что “запускать всегда”
Указать выполняемый файл, например, такой
Или сказать, чтобы запускался rasdial.exe (VPN User Password – это название вашего VPN-соединения имя_пользователя и ваш_пароль)
Запускать, с интервалом 5 минут, каждый день.
Метод 3. Настраиваем задачу “с вывертами” :)
- Создаем задачу в Task Scheduler
- Определяем в задаче два триггера. Один с использованием XML запроса (по аналогии со статьей Запуск задания планировщика после завершения определенного задания)
- Название лога: Microsoft-Windows-NetworkProfile/Operational
- Источник : NetworkProfile
- Event ID: 10000
- В качестве запускаемой программы, выбираем rasdial.exe с параметрами vpn-name username password
- Дополнительно, на вкладке Conditions, можно доопределить следующие параметры
Ну вот, собственно и все.
Далее под спойлером привожу, без перевода, длинное, подробное и нудное описание Метода 1 и 3 на английском языке, взятое с форума Technet.
Had this problem for a few weeks but finally got a chance to spend some time on it last night. Came across this thread….My guess is that with Microsoft making the VPN connection RT-Like, they missed part of the dialog or put it that way for RT Tablets with the thought that you wouldn’t want the VPN reconnecting and using up data/battery. Of course they missed the point of keeping it for desktops…..
Anyways I was hoping that the dialogs info was missed by the actual code wasn’t as is the case sometimes. Looked promising when I checked the VPN config and found the settings generated in a Windows 8 connection. Unfortunately while the settings are enabled for redial, the redial function doesn’t work. I tried establishing a VPN connection with rasdial though dos but still no luck. Just occurred to me as I’m typing this email that I may try renaming the rasdial.pbk and loading it with the Rasdial comment to establish a VPN connection, maybe it will use the settings. Will give it a try later.
The C:\Users\Joe\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk actually has the redial settings enabled in it…
RedialAttempts=3
RedialSeconds=60
IdleDisconnectSeconds=0
RedialOnLinkFailure=1 (This is set to one in Windows 7 when you enable the Redial checkbox)
In case anyone is interested, came up with a fairly good workaround last night until MS releases an update to put the settings back. I like this solution better than running a 3rd party solution to try to keep the VPN up. You can setup a Task Schedule job to trigger on a disconnect. I gave it a try last night and the VPN immediately reconnected. I’m checking for client/remote disconnect error codes excluding the «user disconnect» code to avoid it reconnecting when you actually want to disconnect. These are just two error codes I noted in the event log, MS lists a lot more error codes but I haven’t experienced them on disconnects though they could be added. If anyone uses this and thinks more codes should be added please update the xml query or let me know and I’ll update it. Forgive the XML query, not something I usually do so if it can be formatted better, let me know…for learning 😉
Here is a list of some error codes (this is not complete for Win8 but I didn’t spend much time searching)
How to setup a Scheduled Task to Trigger on a VPN Disconnect
- Click Windows8 Start and type Schedule Task (open it under Settings)
- Click Create Task
- Apply the following settings in the specified Tabs (italics describes each setting)
General Tab
Name: VPN Redial
For descriptive use, you can use any name you want like My Company VPN Redial….whatever…..
Select: Run whether user is logged on or not
Provided you have a password associated to your login account, this option will prevent the dos window from opening everytime the job runs. If you don’t have a password, leave it and see the notes below these steps.
Triggers Tab
Click New button
To create a new trigger we will use to activate the job when the VPN connect disconnects
Begin the task: On an Event
The job will be triggered by an Application event log entry
Select: Custom
Custom gives us the flexibility of creating a more detailed query
Click New Event Filter… button
Here is where we build the query for the trigger
Click the XML tab
This tab allows us to write our own query (even more flexible)
Check Edit query manually
To start a manual edit
Copy the following query
This query will trigger on an Application Event for RasClient with an EventID of 20226 and error codes 829 (Remote Disconnect), 629 (Client Disconnect). Copy from and including to
Ensure Enabled is checked
Check it if it’s not checked to make sure the job will be enabled
Actions Tab
Click New
To create an action to be performed when the job is triggered
Action: Start a program
Selection this option will allow us to start rasdial to reestablish the VPN connection
Program/script: rasdial
Should already be in path so just enter rasdial command
Add arguments (optional): «VPN Name» username password
VPN name is the name you defined for your dialup connection. Example, when you click the network icon in the system tray, the name that’s listed for your VPN, make sure you enter it in exactly as displayed. Following the connect would be your username and password. Example, «MY VPN Connection» username password
Conditions Tab (not required unless you are using a laptop)
Uncheck: Stop if the computer switches to battery power
Settings TAB
Enable: If the task fails, restart every: 1 minute
In case there is a temporary issue re-establishing the VPN connection. You can specify whatever value you want instead of 1 minute
Attempt to restart up to: 7 times
Again in case there is a temporary issue re-establishing the VPN connection. You can specify whatever value you want instead of 7 times
Click Ok
Notes
- Haven’t really tested this much but I had configured it last night, woke up this morning to find the Event log showing 4 disconnects, and the job redialed all 4 times, VPN connection was still active.
- In the General Tab we enabled «Run whether user is logged on or not. This is a non issue since there won’t be a VPN connection when you’re not logged in. What this option does since we are running a dos (rasdial) command, it prevent a dos window from opening every time the job runs so you won’t be distracted if you’re in the middle of something. This option only works if you have a password (which you should) associated with your account. If you don’t and just allow your computer to boot to desktop, the option won’t work. What I’ve done for people in these situations is created a little VBScript wrapper to launch the dos command to avoid the dos prompt. Not really an issue unless you’re anal about it like me, you could simply deal with the Dos window opening up.
- Again the query checks the event log for a new Entry for RasClient with an event id of 20226 containing error codes 820 or 620. you can add additional error codes by repeating the pattern. Example to also trigger on 222 and 333 you would modify the relevant part of the line as such *[EventData[Data[4]=’829′ or ‘629’ or ‘222’ or ‘333’]]
4. I’m checking error codes because I don’t want the job to be reconnected if I purposely disconnect the VPN which generates a 631 code under Event ID 20226.
Автозапуск VPN в Windows
В последние несколько лет все более популярной становится технология организации удаленного рабочего места (будь то отдельный сотрудник и целый офис) за счет технологии VPN. Однако пользователю не очень удобно каждый раз при загрузке компьютера вручную инициировать VPN соединение. Как сделать так, чтобы VPN подключение поднималось автоматически при загрузке Windows или при входе пользователя в систему и не требовало бы от пользователя никаких дополнительных манипуляций? Попробуем в этом разобраться.
Предположим, что для подключения к VPN, вы используете специально созданное подключение с именем «vpn_office». В том случае, если новое VPN создавалось с настройками по-умолчанию, скорее всего его название будет содержать пробелы или русские символы (процесс создания VPN подключения в Windows 8). Для дальнейшей работы, лучше его переименовать, так, чтобы имя VPN подключения содержало только английский символы, а пробелы в названии отсутствовали (Правой клавишей по значку соединения и «Переименовать»).
В параметрах VPN подключения снимите галочки у параметров:
- Отображать ход подключения (Display progress while connecting)
- Запрашивать имя, пароль и т.д. (Prompt for name and password, certificate, etc)
- Включать домен входа в Windows (Include Windows logon domain)
Существует несколько способов автоматической установки VPN соединения в Windows. Большинство из них работают корректно практически во всех версиях Windows и отличаются способами реализации автоматического запуска сценария инициации VPN подключения. В некоторых случаях какая-то конкретная методика может не заработать, и вам придется попробовать альтернативную. Также стоит отметить, что описанные методики автоматического подключения к VPN были протестированы в Windows 7, однако с небольшими модификациями и правками (или совсем без оных), их можно использовать и в других ОС семейства Windows
Для установки автоматического VPN соединения мы будем использовать встроенную в систему утилиты rasdial.
RASDIAL. Установка VPN подключения из командной строки
Утилита rasdial появилась еще в самых ранних версиях Windows и использовалась для управления удаленными подключениями. Найти утилиту rasdial.exe можно в системном каталоге C:\Windows\system32\.
Список текущих удаленных подключений можно отобразить, набрав команду rasdial без параметров.
Чтобы отключить удаленное соединение, нужно воспользоваться командой:
Нас в данном случае интересует процесс как с помощь данной утилиты можно установить VPN подключение. Формат команды в этом случае будет такой:
[Имя_VPN_подключения] — название VPN подключения в системе
[имя_пользователя] [пароль] – информация, выданная вашим ISP или администратором.
В том случае, если название подключения или имя пользователя содержит пробел, служебные или русские символы, такой параметр нужно брать в кавычки.
В моем случае, команда подключения будет такой:
В случае успешной установки VPN соединения и прохождения авторизации, отобразится строка «Command completed successfully», это означает, что соединение с VPN сервером установлено.
Следующий шаг – настройка автоматического запуска данной команды.
Автозапуск VPN подключения с помощью планировщика Windows
Попробуем настроить автозапуск VPN с помощью функций планировщика (Task Sheduller) Windows. Для этого запустите программу Start->All Programs-> Accessories-> System Tools->Task Scheduler, или же в командной строке выполните: taskschd.msc
Создадим новое простое задание планировщика с именем «AutoConnectVPN»
Далее нужно указать, когда необходимо выполнять задачу. В данном случае нас интересуют следующие возможности планировщика:
- When the computer starts (при загрузке компьютера)
- WhenIlogon (при входе пользователя в систему)
Выбор в данном случае за вами, т.к. в зависимости от требования к организации системы иногда нужно, чтобы VPN автоматически подключался при загрузке компьютера (пользователь еще не вошел в систему). Это удобно использовать на серверах (для служб, работающих в фоновом режиме или для выполнения других автоматических операций). Если же требуется, чтобы VPN запускался только при входе пользователя (начало рабочего дня оператора или работника удаленного офиса), нужно выбрать второй вариант.
Затем указываем что планировщик должен запустить программу (Start a program).
В следующем окне нужно указать какую программу нужно запустить и с какими параметрами. Мы запускаем C:\Windows\system32\rasdial.exe с аргументами vpn_office winitpro_admin $ecretnaRFr@z@
После окончания работы мастера, в списке задач, выполняемых при загрузке Windows, появится еще одна с именем AutoConnectVPN. Теперь при следующей загрузке системы VPN соединение должно подняться автоматически.
Для Windows 7/ Win 8. В том случае, если соединение не установиться, попробуйте в планировщике задач найти созданное вами задание и в его свойствах на вкладке General укажите — Run with highest privileges (запускать с правами администратора), это должно помочь.
Автозапуск VPN с помощью реестра
VPN подключение можно устанавливать автоматически и с помощью реестра. В реестре существует специальная ветка, программы в которой Windows автоматически запускает каждый раз при загрузке.
- Запустите редактор реестра (regedit.exe) и перейдите в ветку HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- Создайте новый строковый параметр именем vpnConnect и значением rasdial vpn_office winitpro_admin $ecretnaRFr@z@
- Закройте реестр и перезагрузите компьютер
Если нужно запускать подключение только для текущего пользователя, то эту операцию нужно произвести с разделом HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Автоматическое подключение VPN с помощью автозагрузки
Просто создать ярлык для нужного VPN подключения и скопируйте (перетяните) созданный ярлык в каталог Автозагрузка (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup) меню «Пуск».
Возможно, многие читатели будут возмущены, почему самый простой способ автоматизации установки VPN соединения идет последним. Однако поспешу сообщить, что такая методика почему-то в некоторых случаях не всегда работает, особенно в ОС с UAC.
Автостарт VPN с помощью системной службы
Данная методика предполагает, что мы создадим собственную службу Windows, которая отрабатывает процедуру VPN соединения до входа пользователя в систему.
В командной строке с правами администратора, создадим новую службу командой:
Чтобы служба запускалась уже после запуска всех системных служб, поставим ее в зависимость от службы lanmanworkstation. В консоли services.msc должна появиться новая служба autoVPN, если она отсутствует, проверьте правильность введенной команды.
Учтите, что это псевдо-служба, и она не будет отображаться в процессах, отрабатывая один раз при запуске системы.
Удалить службу можно командой:
В этой статье мы разобрали наиболее популярные способы организации автоматического VPN подключения в Windows. Если что-то не заработало, или вы знаете собственный способ организации автозапуска VPN — описывайте все в комментариях. Указанную схему можно протестировав, подняв собственный VPN сервер на Windows 7 и отработать всю процедуру на нем.
Remote Access error 623 — на Ваших данных.
Как решается?
Согласно KB320693:
You may receive this error message if the VPN connection is configured to use a dial-up connection that has been deleted.
Если по русски: скорее всего удалено подключение, используемое по умолчанию. Зайдите в Сетевые подключения, удалите лишние подключения. Затем выберите в качестве подключения по умолчанию любое из доступных. Потом в контекстном меню этого подключения выбирите “не использовать по-умолчанию»
На Windows 8.1 последний способ не сработал. Если попробовать запустить службу вручную, появляется следующее сообщение: http://rghost.ru/56953509
такая же проблема при запуске службы
Все предложенные способы предполагают хранить пароль в открытом виде. Как этого избежать?
Напиши cmd для запуска vpn (через rasdial) и обфусцируй код.
Перезалил скриншот:
[IMG]http://i65.fastpic.ru/big/2014/0917/a8/1ea84580f9f221d7bac08ef7fedb64a8.png[/IMG]
Yerel, тоже столкнулся с такой же проблемой, как и вы, 3 дня подряд над ней просидел, удалось решить. Описываю последовательность действий. Здесь и далее примем, что у нас подключение PROVIDER, срабатывающее по логину login и паролю pass.
1) Удалите свою службу через командную строку набрав:
sc delete PROVIDER
2) Создайте файл блокнота со следующим содержанием:
CreateObject(«WScript.Shell»).Run «rasdial PROVIDER login pass», 0, false
3) Назовите полученный файл PROVIDER.vbs. Таким образом, вы получите скрипт на языке VBS, который вызывает все ту же самую команду RASDIAL, причем действует скрытно без всяких окон в фоновом режиме (флаг 0) и сразу по отрабатыванию закрывается (флаг false)
4) Создайте в этой же папке еще один файл блокнота с таким содержанием:
copy PROVIDER.vbs %windir%\System32\PROVIDER.vbs
sc create PROVIDER start= auto binPath= «wscript PROVIDER.vbs» depend= lanmanworkstation obj= «NT AUTHORITY\LocalService» DisplayName= «PROVIDER»
5) Назовите его PROVIDER.bat. Сейчас вы получили исполняемый файл, который делает 2 действия. Сначала он копирует только что созданный вами скрипт в системную папку System32. А затем создается служба PROVIDER, автоматически отрабатывающая при старте системы, зависимая от «Рабочей станции», исполняемая от лица «Локальной службы» и вызывающая созданный вами скрипт из папки System32 через скрипт-хост WScript.
6) Запустите PROVIDER.bat и все заработает! Единственный минус — в журнале событий все равно будет вылезать та же самая ошибка, что на вашем скриншоте, и все равно служба вручную не запускается, но это незначительно, ведь VPN-то при загрузке системы теперь сама подключается! На будущее очень советую эти файлики надежно сохранить и запускать этот BAT-файл каждый раз после переустановки ОС и создания подключения. Проверено на Windows XP и Windows 7.
P.S. Администратору сайта — внесите этот вариант в ваш материал, уточнив вариант со службой и с планировщиком. В случае с реестром у меня не получилось гарантированно запустить скрипт, работало через раз, через HKLM и HKCU. Еще стоит отметить, что просто RASDIAL и в планировщике, и в реестре дает черное CMD-окно при подключении, а скрипт не дает.
C уважением, AlSar.
Спасибо за ответ, но этот способ у меня тоже не сработал, увы. Кстати, батник можно сократить до такого вида:
sc create vpn start= auto binPath= vpn.vbs depend= lanmanworkstation obj= «NT AUTHORITY\LocalService»
Yerel, я даже догадываюсь, почему у вас не сработало, в силу «сокращения» батника. Допустим команду copy вы отметаете и копируете вручную, ваше право, но я автоматизировал процесс. Допустим, вы не присваиваете службе отображаемое имя. Но вот в параметре binPath вы допускаете ошибку. binPath — путь к бинарнику, т.е. к ехе-ншнику, dll-ке, на худой конец — батнику. А у вас просто ссылка на скрипт. Я тоже так делал, и это не работало. В журнале ошибок Windows посмотрите. Увидите «vpn.vbs не является приложением Win32, запуск службы невозможен». Запуск через Wscript здесь обязателен. Я 3 дня посвятил этой проблеме и проверил уже все возможные варианты.
>Запуск через Wscript здесь обязателен.
Я пробовал оба варианта. Подключения не происходит, а в журнале появляются две ошибки:
«Превышение времени ожидания (30000 мс) при ожидании подключения службы «vpn».»
«Сбой при запуске службы «vpn» из-за ошибки
Служба не ответила на запрос своевременно.»
куча даунов оставляют свои пароли в свою корпоративную сеть открытом виде, а потом плачут что кто-то зашифровал на работе базы данных и все документы.avi
А Вы в курсе, что созданное VPN подключение Windows пароли хранит в открытом НЕ ЗАШИРОВАННОМ виде??
Вот софтяшка — которая благополучно с реестра windows вытягивает не зашифрованный пароль VPN.
http://www.nirsoft.net/utils/dialupass.html
Как по мне, в 100 раз безопаснее в батнике в открытом виде хранить пароль чем в ВПН подключении.
Как минимум — вирусы тупые — с реестра ВПН пароль вытянут, а вот открыть планировщик, найти батник, вытянуть от туда пароль — увы — не хватит интеллекта )))).
Ребята, просто откройте «Сетевые подключения», нажмите правой кнопкой на VPN соединении — «Создать ярлык», и поместите ярлык в автозагрузку. Этот вариант запустить соединение как-будто вы его запустили вручную, и никакие логины-пароли в открытом виде лежать не будут.
Сколько ни пытался, никак не получилось запустить vpn c помощью планировщика задач и rasdial. Способ нерабочий для windows server
У тех у кого ошибка «Превышение времени ожидания (30000 мс) при ожидании подключения службы «vpn».» нужно добавить зависимости на запуск службы
sc create autoVPN start= auto binPath= «rasdial VPN Username Password» DisplayName= «AutoVPN» depend= RasMan/Netman/PolicyAgent/lanmanworkstation/lanmanserver obj= «NT AUTHORITY\LocalService»
Спасибо добрый человек, всё получилось через rasdial