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

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

Ответить
Настройки темы
CMD/BAT - [решено] Проверка состояния сети.

Аватара для Dreamer_UFA

Ветеран


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


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

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


Изменения
Автор: Dreamer_UFA
Дата: 26-05-2012
Доброго времени суток уважаемые.
Возможно это баян, но что то ничего не нашел. Вернее все отрывисто.

Необходимо сделать батник который бы анализировал состояние сети по 5 контрольным точкам потом бы выдавал проблемное место.
Батник для запуска пользователем, когда он позвонит в ТП. У нас множество удаленных точек и уже порядком поднадоело "подрываться" из за глупых ошибок пользователя.

Наваял сейчас простенький батни. Пингует точки, если пинг не проходит - пишет недоступность. А мне в идеале вывести в конце теста мессадж бокс с примерным содержанием содержанием:

1. Сервер 1 - Доступен
2. Сервер 2 - Доступен
3. Сервер 3 - НЕ доступен
4. Сервер 4 - НЕ доступен
5. Сервер 5 - Доступен

От этого можем отталкиваться уже и анализировать проблему.

Вот батник который сейчас наваял


@echo oFF

ping 192.168.140.1 | find "TTL=" > nul
if errorlevel 1 (
msg * "SERVER IBMD NE DOSTUPEN"
) else (
echo "IBMD NE DOSTUPEN"
)

ping 192.168.1.1 | find "TTL=" > nul
if errorlevel 1 (
msg * "MODEM NE DOSTUPEN"
) else (
echo "MODEM DOSTUPEN"
)

ping 77.94.124.70 | find "TTL=" > nul
if errorlevel 1 (
msg * "PDC FILIALA NE DOSTUPEN"
) else (
echo "PDC FILIALA DOSTUPEN"

exit /b
)


как то так. Поделитесь соображениями пожалуйста кому не лень...

PS Другие темы читал, немного не то. Стороннее ПО не получится - стандарты компании не разрешают ставить. Да и точек очень много.
Нужно просто батник который пользователь нажмет по просьбе СТП и прочитает сообщение выданное ей.

Отправлено: 12:11, 26-05-2012

 

Старожил


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

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


Dreamer_UFA, добавление новых серверов очень простое, посмотрите, как это сделано в примере. Вашим пользователям останется только нажать Ctrl+C на появившемся месседжбоксе и отправить результат вашей техподдержке.

Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
:: Адреса серверов в формате IP:Описание
:: Название переменной - _PointНомер, где номер идет с приращением в 1
Set _Point1=192.168.50.1:Billing server
Set _Point2=192.168.50.5:VPN server
Set _Point3=192.168.72.11:FTP
Set _Point4=127.0.0.1:Loopback
Set _Point5=209.85.148.113:Google.com

Set i=5
Set MsgString="Status:"
:: Получаем набор адресов
Echo Wait...
For /F "tokens=2 delims==" %%A In ('Set _Point') Do (
	For /F "tokens=1,2 delims=:" %%B In ("%%A") Do (
		Echo Checking "%%B"
:: Проверяем на доступность сервера и стабильный пинг к нему
		For /F %%I In ('Ping -n %i% %%B^|Find /C "TTL="') Do (
			If %%I==%i% (Set Result=Online) Else (Set Result=Unstable connection)
			If %%I==0 Set Result=Not responding
		)
:: Составляем строку с данными для MsgBox'а
		Set MsgString=!MsgString! + vbCrLf + "%%C - !Result!"
	)
)
:: Генерируем и запускаем vbs-скрипт, выводящий данные
Echo MsgBox %MsgString%>"%Temp%\statusmsg.vbs"
"%Temp%\statusmsg.vbs"

Последний раз редактировалось Anonymоus, 28-05-2012 в 08:20. Причина: Добавил тщательную проверку пинга и статус "Unstable connection"

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

Отправлено: 13:50, 26-05-2012 | #2



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

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


Аватара для CyberMuesli

Старожил


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

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


Цитата Anonymоus:
Ping -n 2 %%B|Find "TTL=" »
сто раз видел | find "TTL=", но имхо, это какое-то списывание друг у друга.

Во-первых, ping прекрасно сам устанавливает errorlevel и не нужно дополнительно анализировать вывод, как это требуется например для nslookup, которая этот errorlevel не устанавливает. Команда

Ping -n 2 %%B|Find "TTL=">nul&&Set Result=Online

полностью эквивалентна

Ping -n 2 %%B &&Set Result=Online

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

ping -n 10 %%B | find "(0%"

что будет означать 100% успех

-------
Кибер Мюсли


Последний раз редактировалось CyberMuesli, 27-05-2012 в 17:32. Причина: изменение параметров подписки


Отправлено: 17:24, 27-05-2012 | #3


Старожил


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

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


Цитата CyberMuesli:
сто раз видел | find "TTL=", но имхо, это какое-то списывание друг у друга. »
Если вы не видите в дополнительной проверке смысла, это не значит, что его там нету. Ping некорректно возвращает ErrorLevel в некоторых случаях. На скриншоте - один из них.

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

Отправлено: 17:42, 27-05-2012 | #4


Аватара для Dreamer_UFA

Ветеран


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

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


Anonymоus : Большое спасибо. Ваш пример с небольшой доработкой то что надо. На первых порах будем испоользовать это.
А вообще сейчас пишу небольшую утилитку на дельфи которая постоянно мониторит соединения. В случае обрыва - выводит пользователю сообщение. В любое время можно навести курсор мыши на ярлык в трее - будет отчет по всем соединениям. Планы такие пока.

"|FIND TTL=" честно списал. Мне показалось достаточным того что при первых откликах на пинг система считала связь нормальной.

Отправлено: 18:33, 27-05-2012 | #5


Ветеран


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

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


Цитата Anonymоus:
Ping некорректно возвращает ErrorLevel в некоторых случаях. На скриншоте - один из них. »
Поясните скриншот.

Отправлено: 19:22, 27-05-2012 | #6


Старожил


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

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


Iska, согласно technet:
Цитата:
Сообщение «Заданная сеть недоступна» означает, что отсутствует маршрут к сети назначения. Необходимо проверить таблицу маршрутизации на маршрутизаторе, адрес которого указан в сообщении «Заданная сеть недоступна». Дополнительные сведения о таблице маршрутизации см. в разделе Общее представление о таблице IP-маршрутизации.
При этом, хотя фактически пинг не прошел - ErrorLevel остается нулевым. Разбор вывода с помощью «Find "TTL="» всегда позволяет определить, прошел ли хоть один пинг, вместо того, чтобы слепо полагаться на возвращаемый ErrorLevel.

Отправлено: 19:32, 27-05-2012 | #7


Ветеран


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

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


Anonymоus, так, а почему отчего на скриншоте есть сообщение о полученном пакете?

Отправлено: 19:56, 27-05-2012 | #8


Старожил


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

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


Вот этого я не скажу, подозреваю, что пакет вернул маршрутизатор, а не указанный узел 192.168.70.1. Но то, что туда от меня пакеты не приходили - это факт.

Отправлено: 20:03, 27-05-2012 | #9


Ветеран


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

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


А что в ICMP-пакете содержится?

Отправлено: 20:32, 27-05-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проверка состояния сети. LikeSD AutoIt 6 29-03-2014 09:18
Проверка прав пользователей в сети super_Spartan Хочу все знать 4 10-07-2009 13:02
VBS/WSH/JS - [решено] проверка состояния учетной записи hse2000 Скриптовые языки администрирования Windows 11 19-03-2009 11:40
Программа для отображения состояния сети kazarkin Сетевые технологии 5 06-10-2006 14:09
мониторинг состояния компьютеров в сети XaDex Сетевые технологии 1 26-08-2006 02:05




 
Переход