В последние несколько лет все более популярной становится технология организации удаленного рабочего места (будь то отдельный сотрудник и целый офис) за счет технологии 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 без параметров.
Чтобы отключить удаленное соединение, нужно воспользоваться командой:
rasdial «имя_ VPN_подключения» /disconnect
Нас в данном случае интересует процесс как с помощь данной утилиты можно установить VPN подключение. Формат команды в этом случае будет такой:
rasdial [Имя_VPN_подключения] [имя_пользователя] [пароль]
[Имя_VPN_подключения] — название VPN подключения в системе
[имя_пользователя] [пароль] – информация, выданная вашим ISP или администратором.
В том случае, если название подключения или имя пользователя содержит пробел, служебные или русские символы, такой параметр нужно брать в кавычки.
В моем случае, команда подключения будет такой:
rasdial vpn_office winitpro_admin $ecretnaRFr@z@
В случае успешной установки 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 (при загрузке компьютера)
- When I log on (при входе пользователя в систему)
Выбор в данном случае за вами, т.к. в зависимости от требования к организации системы иногда нужно, чтобы 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 соединения до входа пользователя в систему.
В командной строке с правами администратора, создадим новую службу командой:
sc create autoVPN start= auto binPath= "rasdial vpn_office winitpro_admin $ecretnaRFr@z@" DisplayName= "AutoVPN" depend= lanmanworkstation obj= "NT AUTHORITY\LocalService"
Чтобы служба запускалась уже после запуска всех системных служб, поставим ее в зависимость от службы lanmanworkstation. В консоли services.msc должна появиться новая служба autoVPN, если она отсутствует, проверьте правильность введенной команды.
Учтите, что это псевдо-служба, и она не будет отображаться в процессах, отрабатывая один раз при запуске системы.
Удалить службу можно командой:
sc delete 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.
Спасибо за ответ. Но у меня этот способ тоже не сработал, увы:
http://i65.fastpic.ru/big/2014/0920/92/36443e27673a41bcd26d2b7c1f890c92.png
Спасибо за ответ, но этот способ у меня тоже не сработал, увы. Кстати, батник можно сократить до такого вида:
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 соединении — «Создать ярлык», и поместите ярлык в автозагрузку. Этот вариант запустить соединение как-будто вы его запустили вручную, и никакие логины-пароли в открытом виде лежать не будут.
на виндовс 11 не работает
Сколько ни пытался, никак не получилось запустить 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
А как сделать чтобы впн запускался после появления интернета либо после установления связи с интернет заданным другим коннектом.
Спасибо за руководство оно стало стартом для изысканий в сторону автоматического старта и переподключения ВПН в Винде.
Rasdial и Автостарт при включении конечно хорошо и отрабатывает на ура, но при потере связи оно не переподключалось пришлось немного модернизировать запуск. Итак
1) Создаем задачу как написано тут от Пользователя СИСТЕМА и т.д. и т.п
2) В место rasdial.exe указываем cmd.exe
3) В аргументах указываем /c start cmd /c «for /l %x in (0,0,0) do (rasdial VPN_NAME VPN_USER VPN_PASS & timeout 5)» Это позволяет задаче постоянно мониторить соединение.
Можно через событие 829 — Remote Disconnect, 629 -Client Disconnect, но так проще.
Обязательно учитываёте что работает только для систем Win10/server12 и выше. Если ваша система ниже то вместо timeout 5 используйте простой пинг.
Создаем задачу как написано тут от Пользователя СИСТЕМА и т.д. и т.п ??? не понятно что к чему?
Я сделал от юзера под полными правами с галкой выполнять с повышеными правами, все пашет
Настроил подключение на терминальном сервере:
1) создал VPN подключение vpn_name (у меня SSTP)
2) создал батник, выложил его на диске C, ограничил доступ к нему правами
@echo off
C:\Windows\System32\rasdial.exe vpn_name login password
3) настроил на запуск в планировщике Windows каждую минуту и по событию 20268 СИСТЕМА (отключение ВПН), т.к. при входе пользователя ВПН соединение обрывалось. При таком сценарии тоже обрывается на 1-2 секунды, может меньше. В моём случае некритично
Пока работает исправно
PS. Не забудьте добавить статические маршруты для локальный сети, при необходимости