Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Мониторинг VPN и прописывание маршрута

Ответить
Настройки темы
VBS/WSH/JS - Мониторинг VPN и прописывание маршрута

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177


Конфигурация

Профиль | Отправить PM | Цитировать


Здравствуйте.
У меня есть VPN сервер, к которому подключается человек из другого офиса. Для правильной настройки подключения со стороны офиса мне пришлось прибегнуть к возможностям VBS.

В этой теме http://forum.oszone.net/thread-176097.html я описал свою проблему и сам же решил её написанием скрипта, который анализирует ответы компа из командной строки.

Принцип работы таков:
1. Подключается VPN соединение
2. Смотрится номер виртуального интерфейса
3. Прописывается маршрут в удалённую сеть с учётом номера
+всё логируется

Решение может и "детское" но работает до сих пор. Есть небольшая проблемка. При обрыве VPN соединения - оно поднимается само (пара галочек в настройках), а вот роуты не поднимаются. Приходится звонить в офис и просить перезапустить скрипт. Скажите как можно модифицировать скрипт чтобы он мониторил соединение и если нужно поднимал его и прописывал роуты? Может стОит переделать и его основную часть (анализ строк)?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 18:22, 16-07-2010

 

Пользователь


Сообщения: 140
Благодарности: 92

Профиль | Отправить PM | Цитировать


Tonny_Bennet,

Скрипт очень неплохой и срочная модернизация ему не требуется, а для
мониторинга подключения можно использовать такой способ:


Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell")
       Do 
       RetCode   =  WshShell.Run("ping -n 1 <<узел доступный по vpn>>", 0, True)
       ChEnable  =  true
           If RetCode = 1 Then
              Call AddRouteFunction("str")
           End if
       Wscript.Sleep 600000 ' Задержка на проверку соединения
       Loop While ChEnable

Function AddRouteFunction(str)
     -
     - основное тело твоего скрипта
     -
End Function 
WScript.Quit (1)
Нечто подобное, но с ручным запуском есть здесь vbscript: Bat файл мониторинга подключения

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:32, 16-07-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Спасибо. Я читал указанную тему. Думаю что в понедельник сяжду и можернизирую скрипт. О результатах отпишусь.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 23:49, 17-07-2010 | #3


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


чуть переставил строчки и получилось вот это:

Код: Выделить весь код
Set WshShell = CreateObject("WScript.Shell")
Set FSO=CreateObject("Scripting.FileSystemObject")
Dim Log
Set Log=FSO.OpenTextFile("C:\vpn_connect_logs.txt",8,true)
Log.WriteLine(Now()&" Запуск скрипта")
'WScript.Sleep 40000 'пауза 40 секунд
Call AddRouteFunction("str")

       Do 
       RetCode   =  WshShell.Run("ping -n 1 192.168.0.111", 0, True)
       ChEnable  =  true
           If RetCode = 1 Then
			Log.WriteLine(Now()&" Обрыв соединения")
			Call AddRouteFunction("str")
           End if
       Wscript.Sleep 10000 'Задержка на проверку соединения 10 секунд
       Loop While ChEnable

Function AddRouteFunction(str)

Dim StringArray(15) 
'параметры подключения
sNameOfConnection = "VPN"
sUser = "Username"
sPassword = "Password"
sNameOfInt="WAN (PPP/SLIP) Interface" 'имя интерфейса

Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("rasdial "&sNameOfConnection&" "&sUser&" "&sPassword) 'подключаем соединение
Log.WriteLine(Now()&" Подключение rasdial "&sNameOfConnection&" "&sUser&" "&sPassword)
WScript.Sleep 3000
Set WshExec = WshShell.Exec("route print")' смотрим route print
Set TextStream = WshExec.StdOut
Str = vbNullString
Trim(TextStream.ReadLine()) 'просто читаю первую строку она мне дальше не нужна
Trim(TextStream.ReadLine()) 'просто читаю вторую строку она мне дальше не нужна
n=0
Log.WriteLine(Now()&" Доступные сетевые интерфейсы:")
Do While Not TextStream.AtEndOfStream
	stemp = Trim(TextStream.ReadLine())' последовательно читаем строки
		if (stemp <> "===========================================================================") then 
			n=n+1
			StringArray(n)=stemp 
			Log.WriteLine(Now()&" "&stemp)
		else 
			Exit Do
		End If
Loop

sNumOfInt=""
For i=1 to 15 'просматриваю все строки и ищу нужный мне сетевой адаптер
	if (InStrRev(StringArray(i),sNameOfInt)<>0) then 
	'MsgBox sNameOfInt & " в "&i&" строке" 
	sNumOfInt = Left(StringArray(i),InStr(StringArray(i)," "))' получаю номер сетевого интерфейса
	End if
Next

Erase StringArray
if (sNumOfInt<>"") then
	Set WshExec = WshShell.Exec("route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1 if "&sNumOfInt)
	Log.WriteLine(Now()&" Добавлен маршрут route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1 if "&sNumOfInt)
else
MsgBox "Маршрут не добавлен. Возможно не удалось создать подключение",vbInformation + vbOK, "Внимание!"
'Log.WriteLine(Now()&" Маршрут не добавлен route add 192.168.0.0 mask 255.255.255.0 192.168.2.1 metric 1 if "&sNumOfInt)	
End if
Log.WriteLine(Now()&" Работа скрипта завершена")
Log.WriteLine()
End Function
 
Log.Close
WScript.Quit (1)
Вроде работает. Вечерком отправлю коллеге в дркгой офис и будем тестировать

Вот только мне интересно нормально ли то, что этот скрипт кушает порядка 11 МБ оперативной памяти?

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:07, 19-07-2010 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Мониторинг VPN и прописывание маршрута

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - "Плохая" трассировка маршрута. Чем, как и на что смотреть? flev45 Сетевые технологии 2 06-01-2010 15:13
VBS/WSH/JS - [решено] Создание папки, прописывание ее в переменных средах. ufunf Скриптовые языки администрирования Windows 10 18-11-2009 00:55
Загрузка - [решено] Можно ли заблокировать прописывание программы в автозагрузке? truvo Microsoft Windows 2000/XP 5 24-03-2009 08:53
Настройка маршрута доступа к сайту w2003r2 GreenIce Microsoft Windows NT/2000/2003 16 21-02-2008 10:52
Отображение на карте мира маршрута доставки файла. Murder7 Программное обеспечение Windows 13 02-05-2004 19:33




 
Переход