Заметки на манжетах
2010-06-19 16:00![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Дано: домашний ноутбук с Windows в руках далеких от IT людей, поэтому подключение к интернету через DIR-320 (штатная прошивка).
Надо: после загрузки машины и установления соединения поднимать PPtP-коннект к конкретному серверу с конкретным именем и паролем, штатными виндовыми средствами.
Решение:
- настраиваем подключение к DIR-320 через DHCP (проводное или беспроводное, не важно), так как нам нужно привязаться к событию "сеть работает" (при этом можно настроить роутер выдавать статический или динамический адрес, не важно);
- создаем и настраиваем VPN-подключение, проверяем, что вручную оно нормально подключается (при создании разрешаем сохранение пароля и использование подключения другими пользователями - это нужно, чтобы при "быстром переключении пользователей" и завершении пользовательской windows-сессии система не разрывала PPtP-коннект);
- идем в панель управления - администрирование - планировщик заданий - библиотека планировщика - ПКМ* по пустому месту в списке заданий - создать новую задачу:
- как-нибудь называем задание (описание можно пропустить), изменяем учетную запись на "система", выбираем "выполнять вне зависимости от регистрации пользователя", ставим галку "не сохранять пароль" (потому что не нужно) и "Выполнить с наивысшими правами" (обязательно надо);
- в следующей вкладке "Триггеры" создаем "При событии" - простое - Журнал Microsoft-Windows-DHCP Client Events/Администратор, источник "Dhcp-Client", код события 50067 (получение адреса);
- в следующей вкладке "Действия" создаем действие "Запуск программы", в поле "Программа или сценарий" просто вписываем rasdial, в аргументах указываем последовательно через пробел имя соединения PPtP, логин и пароль;
- в следующей вкладке "Условия" ставим галку "Запускать только при подключении к следующей сети" и выбираем подключение к роутеру - это особенно важно для беспроводного подключения, так как между получением адреса по DHCP и реальным поднятием сети есть временнОе окно и запуск rasdial в этом окне может приводить к "подвисанию" PPtP-соединения;
- в следующей вкладке "Параметры" ставим галку "Разрешать выполнение задачи по требованию", чтобы можно было её потестировать вручную, при сбое выполнения перезапускать через 1 минуту (жаль, нельзя быстрее) - rasdial возвращает ненулевой код ошибки при сбое (например, PPtP-сервер задаётся именем, а не по IP и ресолвинг не прошел), количество попыток перезапуска я ставлю 999 раз;
- как-нибудь называем задание (описание можно пропустить), изменяем учетную запись на "система", выбираем "выполнять вне зависимости от регистрации пользователя", ставим галку "не сохранять пароль" (потому что не нужно) и "Выполнить с наивысшими правами" (обязательно надо);
Проверено для Windows 7 Ultimate. При попадании в упомянутое "временное окно" планировщик задерживает выполнение задачи на минуту, поэтому PPtP иногда будет запускаться с задержкой.
ПКМ - правая кнопка мышки
no subject
Date: 2010-06-19 09:43 (UTC)no subject
Date: 2010-06-19 13:45 (UTC)@echo off
:vpn
rasdial VPN login password
ping -w 5000 5.5.5.5>nul
goto vpn
no subject
Date: 2010-06-19 14:37 (UTC)no subject
Date: 2010-06-19 14:41 (UTC)no subject
Date: 2010-06-19 14:53 (UTC)отключение скриптом, отключающим скрипт автоконнекта и делающего rasdial disconnect
но все это лирика
я каждый раз забываю, во что переименовали триггеры в vista/7?
no subject
Date: 2010-06-19 15:28 (UTC)