![]() |
![]() |
#1 |
-=Добрею=-
Регистрация: 15.08.2005
Сообщений: 580
|
![]()
Добрый день господа программисты
![]() Необходима ваша помощь в следующем вопросе, а именно требуется помощь в написании не сложного на первый взгляд батничка. Суть в следующем: Необходимо пинговать некоторое количество адресов потом формировать отчет и кидать его на почту. есть маленькие наработачки @echo off SET PING_COUNT=4 SET PING_TOMEOUT=1000 echo Pinguem servera ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.1 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.2 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.3 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.4 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.5 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.6 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.7 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.8 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.9 ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.10 Вот такой скрипт еще в инете нашел, заинтересовала отправка результата на почту Может как то можно две эти идеи совместить? <job> <script language="JScript"> // Мониторинг доступности хоста штатными средствами Windows. При изменении состояния отправляет e-mail об этом. // Работает полностью в фоне. Не создает окон и процесса. Не болтается в трее. Не поддерживает скины ![]() // Не будет работать на Win98/2000 - только XP/2003/Vista/LongHorn. var adr="1.1.1.1",interval=5; // Пингуемый адрес и интервал, сек var from="from@host.ru",to="to@host.ru",smtp="smtp.host.ru"; // Параметры электрической почты var wmi=GetObject("winMgmts:root/CIMv2"); // Подключаемся к пространству имён WMI if(WScript.arguments.length&&WScript.arguments(0)=="stop") // Если запущено с параметром "stop" { // то останавливаем мониторинг, try{wmi.Get("__EventFilter.Name='pingMon'").Delete_()} catch(e){}; try{wmi.Get("SMTPEventConsumer.Name='pingMonEv'").Delete_()} catch(e){}; WScript.echo("Monityoring "+adr+" stopped!"); // печатаем сообщение об этом, WScript.quit(); // и завершаем скрипт } // запуск без параметра = старт сервиса with(wmi.Get("__EventFilter").SpawnInstance_()) // создаем экземпляр фильтра событий { // и настраиваем его на изменения состояния PingStatus Name="pingMon"; QueryLanguage="WQL"; Query="select * from __InstanceModificationEvent within "+interval+" where TargetInstance ISA 'Win32_PingStatus' and TargetInstance.Address='"+adr+"'"; Put_(); } with(wmi.Get("SMTPEventConsumer").SpawnInstance_()) // создаем экземпляр потребителя событий { // SMTPEventConsumer - отправка почты Name="pingMonEv"; // задаем ему параметры и шаблоны FromLine=from; ToLine=to; SMTPServer=smtp; Subject="host %TargetInstance.Address% status changed to %TargetInstance.StatusCode%"; Message="Ping(%TargetInstance.Address%): status=%TargetInstance.StatusCode%, delay=%TargetInstance.ResponseTime%."; Put_(); } with(wmi.Get("__FilterToConsumerBinding").SpawnInstance_()) // создаем экземпляр связки { Filter=wmi.Get("__EventFilter.Name='pingMon'").Path_; // связываем фильтр с потребителем Consumer=wmi.Get("SMTPEventConsumer.Name='pingMonEv'").Path_; Put_(); // запускаем мониторинг } WScript.echo("Monitoring "+adr+" started!"); // и печатаем сообщение об этом </script> </job> Последний раз редактировалось Fox; 08.04.2008 в 16:57. |
![]() |
![]() |
![]() |
![]() |
![]() |
|