Яндекс.Метрика

    Ни о чём

    Организация автозапуска VPN-соединения под Windows

    Мой компьютер включен почти всегда. Редкое исключение — длительные поездки далеко за пределы ДС.
    Включен почти всегда, потому что очень часто, когда я нахожусь вне дома (на работе, в гостях, просто летом на даче), возникает необходимость зайти на него (по http или же через Remote Desktop) за какими-либо данными.

    Всё бы ничего, но доступ в интернет обеспечивается через VPN-соединение.
    Которое иногда обрывается. Из-за проблем у провайдера, из-за перезагрузки системы после установки критичных апдейтов или еще по каким-либо причинам.

    До недавнего времени каждый такой обрыв связи приводил к тому, что находясь вне дома, я терял возможность подсоединиться к компьютеру до возвращения домой и запуску VPN-соединения вручную. Пока однажды не решил разобраться в проблеме и сделать решение, которое позволило бы забыть про подобные неприятные ситуации.

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

    C:\Windows\system32\rasdial.exe элемент [пользователь [пароль|*]] [/DOMAIN:домен]
    [/PHONE:номерТелефона] [/CALLBACK:ответныйНомер]
    [/PHONEBOOK:файлАдреснойКниги] [/PREFIXSUFFIX]

    Ну а дальше запустить соединение по расписанию — дело техники.
    Кому-то ближе Планировщик задач + bat-файлы, мне ближе cron + perl.
    Как и отношение к цвету и вкусу фломастеров, сложность скрипта — личное дело каждого.

    Можно даже так:

    c:\windows\system32\rasdial.exe "имя_vpn_соединения" имя_юзера пароль_юзера

    А можно чуть сложнее.
    Например, у меня сначала идет проверка доступности канала (пингом на определенные адреса), а потом запуск одного из VPN-соединений. В случае его недоступности — запуск другого и так далее.

    Единственный нюанс, на который нужно обратить внимание — под каким пользователем будет выполняться данный скрипт. Если VPN-соединение не расшарено между всеми пользователями системы, при запуске скрипта по расписанию система может не найти соединение, поскольку по умолчанию задачи запускаются с правами системного пользователя, а не того, под которым шла отладка.