dadv: (Default)

Дано: домашний ноутбук с Windows в руках далеких от IT людей, поэтому подключение к интернету через DIR-320 (штатная прошивка).

Надо: после загрузки машины и установления соединения поднимать PPtP-коннект к конкретному серверу с конкретным именем и паролем, штатными виндовыми средствами.

Решение:

  1. настраиваем подключение к DIR-320 через DHCP (проводное или беспроводное, не важно), так как нам нужно привязаться к событию "сеть работает" (при этом можно настроить роутер выдавать статический или динамический адрес, не важно);
  2. создаем и настраиваем VPN-подключение, проверяем, что вручную оно нормально подключается (при создании разрешаем сохранение пароля и использование подключения другими пользователями - это нужно, чтобы при "быстром переключении пользователей" и завершении пользовательской windows-сессии система не разрывала PPtP-коннект);
  3. идем в панель управления - администрирование - планировщик заданий - библиотека планировщика - ПКМ* по пустому месту в списке заданий - создать новую задачу:

    1. как-нибудь называем задание (описание можно пропустить), изменяем учетную запись на "система", выбираем "выполнять вне зависимости от регистрации пользователя", ставим галку "не сохранять пароль" (потому что не нужно) и "Выполнить с наивысшими правами" (обязательно надо);
    2. в следующей вкладке "Триггеры" создаем "При событии" - простое - Журнал Microsoft-Windows-DHCP Client Events/Администратор, источник "Dhcp-Client", код события 50067 (получение адреса);
    3. в следующей вкладке "Действия" создаем действие "Запуск программы", в поле "Программа или сценарий" просто вписываем rasdial, в аргументах указываем последовательно через пробел имя соединения PPtP, логин и пароль;
    4. в следующей вкладке "Условия" ставим галку "Запускать только при подключении к следующей сети" и выбираем подключение к роутеру - это особенно важно для беспроводного подключения, так как между получением адреса по DHCP и реальным поднятием сети есть временнОе окно и запуск rasdial в этом окне может приводить к "подвисанию" PPtP-соединения;
    5. в следующей вкладке "Параметры" ставим галку "Разрешать выполнение задачи по требованию", чтобы можно было её потестировать вручную, при сбое выполнения перезапускать через 1 минуту (жаль, нельзя быстрее) - rasdial возвращает ненулевой код ошибки при сбое (например, PPtP-сервер задаётся именем, а не по IP и ресолвинг не прошел), количество попыток перезапуска я ставлю 999 раз;

  4. тестируем задание, запустив его вручную при поднятом подключении к роутеру и не подключенном PPtP-коннекте - он должен подключиться; затем вручную его отключаем, отключаем соединение к роутеру и снова его подключаем - PPtP должен подняться силами планировщика; после чего можно перезагрузить систему, чтобы проверить автоматическую отработку всей цепочки.

Проверено для Windows 7 Ultimate. При попадании в упомянутое "временное окно" планировщик задерживает выполнение задачи на минуту, поэтому PPtP иногда будет запускаться с задержкой.


ПКМ - правая кнопка мышки

Profile

dadv: (Default)
Choose your future

June 2017

M T W T F S S
   1234
56 7891011
12131415161718
19202122232425
2627282930  

Syndicate

RSS Atom

Tags

Style Credit

Powered by Dreamwidth Studios