|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Bat файл мониторинга подключения |
|
CMD/BAT - [решено] Bat файл мониторинга подключения
|
Пользователь Сообщения: 103 |
Здравствуйте!
Можно ли сделать bat файл, который проверял, не отвалилась ли сеть, например пингуя гугл или яндекс и, если отвалилась, то включал подключение по локальной сети (наверное через devcon). А если все нормально, то ничего больше не делал. Суть проблемы: Идет автоматический сбор статистики, иногда (раз в несколько дней) слетает сеть, переходит в состояние "отключено" и больше не включается, это очень плохо, т.к. дальше все идет в тар-тара-рары и сбор заканчивается. Требуется бат или vbs файл, который единовременно проверял бы активность подключения, в случае его отсутствия включал бы сеть, а в случае его присутствия просто бы закрывался. Заранее больше спасибо! |
|
Отправлено: 00:59, 11-07-2010 |
Пользователь Сообщения: 80
|
Профиль | Сайт | Отправить PM | Цитировать Да, мне бы такой очень пригодился!
|
------- Отправлено: 05:42, 11-07-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Сообщения: 53488
|
Профиль | Отправить PM | Цитировать |
Отправлено: 11:18, 11-07-2010 | #3 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать XXXp,
вопрос лучше ставить конкретнее: какая ОС, используется ли DHCP? И зачем обращаться к "железу"? на пробу такой вариант (Static): Echo off&Chcp 866&cmdow @ /hid&CLS(cmdow для скрытия окна) :Control Set $IPaddress=10.184.92.51 & Set $Mask=255.255.252.0 Set $gateway=10.184.92.1 & Set $gwmetric=256 Set $DNS_1=192.168.248.21 & Set $DNS_2=192.168.248.21 Set stop=600000 (задержка) ping -n 1 kremlin.ru>nul If ErrorLevel 0 (call :stop) else ( netsh interface ipv4 delete netsh interface ipv4 set address "Local Area Connection" ^ static %$IPaddress% %$Mask% %$gateway% %$gwmetric% netsh interface ipv4 set dns "Local Area Connection" ^ static %$DNS_1% netsh interface ipv4 add dns "Local Area Connection" ^ static %$DNS_2% snetsh interface ipv4 how config) :stop ping -n 2 -w %stop% kremlin.ru>nul goto control netsh interface ipv4 delete snetsh interface ipv4 et address "Local Area Connection" source=dhcp snetsh interface ipv4 et dns «Local Area Connection» dhcp |
Последний раз редактировалось deepred, 13-07-2010 в 00:05. Причина: уточнение Отправлено: 19:00, 11-07-2010 | #4 |
Пользователь Сообщения: 103
|
Профиль | Отправить PM | Цитировать Код не работает, суть совсем другая, нужно чтобы включал подключение по локальной сети, которое становится "выключено", а насколько я пока смог узнать это может только devcon
|
|
Последний раз редактировалось XXXp, 12-07-2010 в 17:16. Отправлено: 16:55, 12-07-2010 | #5 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать XXXp,
Цитата XXXp:
2. Если же само подключение имеет статус "Отключено", то не факт, что Devcon его не включит (специально проверил на двух PC!!!) и к тому же команда devcon restart сносит все настройки поключения (для STAT IP) 3. Для работы с частью *net* требуются утилиты netsh, ping, tracert и ipconfig, манипуляции непосредственно с подключением позволяет осуществлять только netsh... PS: Непосредственно (но без цикла проверки) этот код использую сам для переподключения после зависания маршрутизатора - все работает на "Ура"! |
|
Последний раз редактировалось deepred, 13-07-2010 в 00:07. Отправлено: 18:37, 12-07-2010 | #6 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать XXXp,
Решение для devcon, попробуй так: Echo Off& Chcp 866 Echo. ping -n 1 kremlin.ru>nul If errorlevel 1 (( for /f "tokens=2 delims=&" %%a in ('devcon listclass net') ^ do ( devcon disable *%%a* >nul devcon enable *%%a* >nul ) Echo Connection restarted !)) else (Echo Connection available!) Echo. Echo Push anykey to close pause>nul goto :eof Set WshShell = CreateObject("WScript.Shell") RetCode = WshShell.Run("ping -n 1 kremlin.ru", 0, True) If RetCode = 1 Then strNetConn = "Сетевые подключения" strConn = "Подключение по локальной сети" strEnable = "&Включить" strDisable = "&Отключить" Set objShell = CreateObject("Shell.Application") Set objCP = objShell.Namespace(3) For Each elem in objCP.Items If elem.Name = strNetConn Then Set colNetwork = elem.GetFolder Exit For End If Next Set Conn = Nothing For Each clsConn in colNetwork.Items If Instr(LCase(clsConn.name), LCase(strConn)) Then Set Conn = clsConn Exit For End If Next If Conn Is Nothing Then WScript.Echo "Network Connection not found" WScript.Quit End If bEnabled = True Set objEnable = Nothing Set objDisable = Nothing For Each clsVerb in Conn.verbs If clsVerb.Name = strEnable Then Set objEnable = clsVerb bEnabled = False End If If clsVerb.name = strDisable Then Set objDisable = clsVerb End If Next objEnable.DoIt strStatus = "enabled." WScript.Sleep 1000 End If WScript.Sleep 1000 Wscript.quit (1) |
Последний раз редактировалось deepred, 14-07-2010 в 14:33. Отправлено: 19:13, 12-07-2010 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Bat файл - рестартер | DimankoR | Скриптовые языки администрирования Windows | 4 | 08-07-2010 10:37 | |
командный файл(.bat) | gh6 | Хочу все знать | 5 | 24-10-2006 11:59 | |
CMD/BAT - Народ help me...Bat-файл | SeregaSp | Скриптовые языки администрирования Windows | 2 | 07-06-2006 11:55 | |
CMD/BAT - про bat файл | NAR | Скриптовые языки администрирования Windows | 6 | 04-10-2004 00:08 | |
Bat-файл | dallas | Хочу все знать | 12 | 21-06-2004 12:38 |
|