Организация дозвона по dial-up с помощью bat-файлов

Автор: content Пятница, Апрель 11th, 2008 Нет комментариев

Рубрика: Интернет

Каждый пользователь стремится как можно более автоматизировать свое подключение к сети Интернет, а также хочет, чтобы это подключение было безопасным. Стандартным решение для этой цели являются программы-звонилки. Они имеются самые разнообразные, предлагая пользователю массу услуг – от запоминания и шифрования паролей до подсчета затраченных денег. Однако чем навороченней звонилка, тем сложнее разобраться в настройках.

Наиболее яркий пример тому – превосходная некогда (и бесплатная) звонилка MuxaSoft Dialer, которая, будучи весьма дружественной к пользователю в версиях для Windows 98, стала весьма неудобоваримой в своей последней версии 4.1, предназначенной для XP.  Много жалоб на  форумах на то, что весьма трудно привести эту звонилку в работоспособное состояние.  Даже уже настроенная и работающая, она некоторые свои функции выполнять отказывается. Впрочем, цель моей статьи не в описании опыта работы с этой звонилкой (я думаю, авторы получают отзывы от пользователей и постараются исправить все обнаруженные недостатки). Пытаясь максимально удобно организовать свое подключение к сети Интернет, перебрав не один десяток звонилок и программ ведения статистики, я отказалась от звонилок и организовала свое подключение с помощью стандартной команды rasdial.

Вот что пишется про нее в справочных файлах Windows XP:
Команда rasdial выполняет запуск сетевого подключения, используя указанные параметры.
Синтаксис
rasdial имя_подключения [имя_пользователя [пароль | *]] [/domain:домен] [/phone:номер_телефона] [/callback:номер_для_ответного_вызова] [/phonebook:путь_к_телефонной_книге] [/prefixsuffix]
Чтобы отключить установленное сетевое подключение, выполняется команда rasdial со следующими параметрами:
rasdial [имя_подключения] /disconnect

Сразу скажу, что я не сторонница хранения паролей на жестком диске компьютера ни в каком виде, включая зашифрованный. Мало ли каких умельцев в сети… И ввод пароля с клавиатуры не обеспечивает нужной безопасности. Мало того, что у Вас за спиной в момент выхода в сеть могут стоять совершенно посторонние люди; существуют программы – клавиатурные шпионы, которые с превеликим удовольствием ваш пароль украдут, и будет потом Вася Пупкин за Ваш счет  Интернетом пользоваться… Однако можно организовать работу так, что пароль можно будет хранить на обычной дискетке.
Сделать это очень просто: в Свойствах вашего подключения к Интернет на
вкладке «Безопасность» в разделе «Интерактивная регистрация и сценарий» Вы указываете подключение с помощью скрипта, находящегося на диске A, т.е. записанного на дискетку (Рис. 1)

 

Скрипт этот в самом примитивном варианте может выглядеть так:

proc main
waitfor «login:»
transmit «my_login»
transmit «^M»

waitfor «Password:»
transmit «my_password»
transmit «^M»

waitfor «PPP»
endproc

Написать его можно в программе Блокнот, после чего сохранить на дискетку с соответствующим именем (в данном случае имя файла – full.scp). Разумеется, вместо my_login и my_password должны стоять Ваши логин и пароль. Уже теперь Вы можете подключиться к Интернет через ранее созданное Вами подключение, используя ввод логина и пароля с дискетки – не забудьте только вовремя вставить ее в дисковод.

Теперь вернемся к команде rasdial. Чтобы удобно подключаться и отключаться с ее помощью, нам необходимо создать командные файлы. Мы их напишем в программе Блокнот. В первом файле будет всего одна строка:
rasdial VTK

Вместо VTK (это название моего соединения для выхода в Интернет) поставьте свое и сохраните файл под каким-нибудь подходящим именем, например, Вход.bat
Обратите внимание: если Вы для этого файла создадите ярлык и разместите его на Рабочем столе, то можно этому файлу присвоить клавишу быстрого вызова (правый клик > свойства), которая включится после перезагрузки. Удобно при этом пользоваться сочетаниями Ctrl +Alt+ какая-нибудь клавиша с цифровой клавиатуры  (Num 1, Num 2 и т.д.)  – такие сочетания редко используются в качестве горячих клавиш в других программах.

Для отключения от сети создадим еще один файлик, который будет называться, например, Выход.bat и будет содержать также одну строчку
rasdial VTK /d

Эта строка в данном случае прерывает связь по соединению VTK (поставьте имя своего соединения).  Создав и для этого файла быстрый клавиатурный вызов, организуем себе удобный процесс подключения-отключения от сети Интернет.

А как быть, например, с весьма удобной функцией программ-звонилок, запускающих необходимые для работы приложения? А очень просто. Для этого мы воспользуемся другой командой командной строки– start. Посмотреть все ее параметры, как и параметры остальных команд, можно в Справке Windows XP, нужно только набрать в строке поиска слова «командная строка» (без кавычек).

Например, мне для комфортной работы необходимо как минимум три приложения, которые должны запускаться до того, как я начну бродить по бескрайним просторам Интернета: файервол, антивирусник и программа подсчета статистики и расчета денежки, на эти прогулки потраченной.

Допишу я команды на запуск этих приложений в файл Вход.bat, щелкнув по нему правой кнопкой мыши и выбрав пункт «изменить»:

start «kav.exe» /D «С:Program FilesKaspersky LabKaspersky Anti-Virus Personal» /MIN kav
start «outpost.exe» /D «С:program filesAgnitumOutpost Firewall» /MIN outpost
start «Statist.exe» /D «С:Program FilesHomeWork Statist» /MIN Statist

здесь после названия команды указывается в кавычках имя приложения, потом
/D “путь”   указывает каталог запуска,
ключ /MIN должен запускать приложение в свернутом виде (но некоторые программы сделаны так, что это не работает ),
и, наконец, следуем имя файла и параметры запуска (если необходимо).

Эти команды должны быть записаны перед командой rasdial — таким образом, нужные приложения будут запущены еще до начала дозвона провайдеру.
Кстати, как видите, для учета статистики и подсчета расходов я пользуюсь программой HomeWork Statist – лучшей, на мой взгляд, программой для домашних пользователей. И практически бесплатной (те, кто не хочет регистрировать ее за символические 50 руб, которые просит за нее автор, могут раз в две недели бесплатно обновлять ключи, заходя на домашнюю страничку программы).

Конечно, если у Вас постоянно включен антивирусный монитор и файервол, эти строки можно не добавлять. Но для тех, у кого мало оперативной памяти, либо кому не требуется постоянный мониторинг вирусной активности, этот способ удобнее. Только не забудьте удалить эти программы из автозагрузки. Ну а прекратить их действие после завершения работы в интернете можно с помощью нашего второго файла, ответственного за разрыв связи.
Для этой цели изменим его содержимое, добавив после команды разрыва соединения строки:
taskkill /IM outpost.exe /f
taskkill /IM avpm.exe /f
taskkill /IM Statist.exe /f

Здесь мы использовали команду прерывания процессов taskkill
/im имя_образа
Указывает имя образа процесса, который необходимо завершить. Используйте подстановочный знак (*) для указания всех имен образа.
/f
Указывает, что процесс(ы) должен быть принудительно завершен. Этот параметр не действует для удаленных процессов, все удаленные процессы завершаются принудительно.
Таким образом, после обрыва связи все запущенные интернет-приложения автоматически прекратят свою работу.
Разумеется, вы можете  добавлять в список запускаемых программ любые другие, необходимые для работы программы.

Немного о грустном. Не знаю, у кого как, а вот у моего провайдера не всегда бывает хорошо с дозвоном. Увы, нет-нет, да и появится грустное окошечко с сообщением о невозможности осуществления связи. Если для дозвона мы используем имеющиеся соединения, стандартная звонилка Windows XP  умеет в таких случаях перезванивать. А как быть с командой rasdial, спросите вы. Да, оказывается, и тут можно все предусмотреть!  Командная строка Windows XP позволяет обрабатывать такие ошибки – те, кто немного знаком с программированием, могут написать себе цепочку команд,  учитывающую возникшие во время дозвона ошибки.
Ошибки на стороне моего провайдера бывают разные, чаще всего возникает ошибка соединения с кодом 619, но иногда случаются и другие, с большими номерами. Ошибки, возникающие при использовании компонента «Сетевые подключения»,  имеют коды от 600 до 800.
Конструкция, позволяющая при возникновении ошибок 619 и больших, выглядит так:
:connect
rasdial VTK
if ERRORLEVEL 619 goto connect

Переменная ERRORLEVEL после нормального соединения равна нулю, если же произошла ошибка, то ей присваивается код этой ошибки. Таким образом, в данной конструкции при возникновении ошибки с кодом 619 либо большим происходит возврат к метке :connect, после чего опять выполняется команда rasdial, т.е запускается цикл. При нормальном же дозвоне цикла не возникает и управление передается следующей строке (которой у нас нет, т.е. к концу командного файла).

Можно, конечно, сразу поставить в эту конструкцию код 600.

Теперь попробуем посмотреть на наши bat-файлы целиком.

Файл Вход.bat

rem Дозвон и подключение программ
start «kav.exe» /D «C:Program FilesKaspersky LabKaspersky Anti-Virus Personal» /MIN kav
start «outpost.exe» /D «C:program filesAgnitumOutpost Firewall» /MIN outpost
start «Statist.exe» /D «C:Program FilesHomeWork Statist» /MIN Statist
:connect
rasdial VTK
if ERRORLEVEL 619 goto connect
Файл Выход.bat

rem Разрыв связи и отключение программ
rasdial VTK /d
taskkill /IM outpost.exe /f
taskkill /IM avpm.exe /f
taskkill /IM Statist.exe /f
rem, как Вы, наверное, догадались, — это комментарий, который все культурные люди должны добавлять… чтоб не забыть, для чего эти странные файлы были ими несколько лет назад созданы… Если вам требуется что-то еще для настроек дозвона, внимательно изучите описание этих команд в справке Windows XP (например, в rasdial можно пользоваться callback – ответным звонком, услугой, поддерживаемой некоторыми провайдерами в целях борьбы с любителями чужих паролей).
Таким образов, с минимумом затрат и без особых мучений с настройками сторонних программ мы создали удобный механизм подключения к сети и  запуска приложений.
Думаю, вам тоже понравится масса возможностей, предоставляемых командной строкой Windows XP и пакетными (bat) файлами. О некоторых из этих возможностях можно прочитать, например,  на www.windowsfaq.ru
Благодарю также экспертов рассылки http://rusfaq.ru, советами которых я при создании этой системы дозвона пользовалась.

Автор Сучкова Татьяна Михайловна.

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты