![]() |
Как вычислить параметр командной строки?
Суть. Нужно сделать, чтобы скрипт определял запущены ли регламентные задания в 1с в отдельном процессе и если не запущен то предупреждал пользователя и высылал письмо на почту. Проблема в том, что у самой 1с и регламентного задания процессы одинаковые и нужно определить по параметры командной строки. Скрипт выводит содержимое CommandLine, там есть параметр DoscheduledJobs. Подскажите как написать условие проверки, если есть данный параметр DoscheduledJobs, то делаю то то, если нет то делаем то?
Скрипт на js. var PsWMI, PsProcesses1, PsProcess1, PsList1, Mess1; var vbCritical=16; //Создаем экземпляр объекта WshShell var WshShell = WScript.CreateObject("WScript.Shell"); //Включаем обработку исключительных ситуаций try { //Соединяемся с WMI PsWMI=GetObject("winMgmts:"); } //Начинаем обработку возможных ошибок catch (e) { if (e!=0) { Mess ="Ошибка\nКод ошибки: " + err.Number; WshShell.Popup(Mess,0,"Запущенные прoцеccы",vbCritical); WScript.Quit(); } } //Создаем кoллeкцию всех работающих процеccoв PsProcesses1=new Enumerator(PsWMI.ExecQuery("SELECT * FROM Win32_Process where name='1cv8c.exe'")); PsList1="Зaпущенныe прoцеccы\n\n"; //Цикл для перебора коллекции while (!PsProcesses1.atEnd()) { PsProcess1=PsProcesses1.item (); PsList1+=PsProcess1.Name + " " + PsProcess1.ProcessID + "\n"+PsProcess1.CommandLine ; PsProcesses1.moveNext(); } //Выводим кoллeкцию процеccов и их идентификаторов WScript.Echo(PsList1); Либо может кто подскажет как в vbs это можно было бы реализовать было бы лучше. Уже есть рабочий скрипт, но я тут только проверку процесса могу сделать, но это не подходит в данном случае. А как с параметром командной строки поступить даже не знаю((( set service = GetObject ("winmgmts:") for each Process in Service.InstancesOf ("Win32_Process") If Process.Name = "1cv8.exe" then wscript.quit End If next Dim o_Mess, v_Conf v_Conf = "http://schemas.microsoft.com/cdo/configuration/" Set o_Mess = CreateObject("CDO.Message") With o_Mess .To = "почта" 'куда отправляем .From = "имя <почта>" 'имя отправителя + Email .Subject = "Остановлено обновление 1С" 'Тема письма .TextBody = "Необходимо уведомить администратора салона" 'Сообщение ' .AddAttachment "C:\data.log" 'Прикрепить файл .TextBodyPart.Charset = "windows-1251" 'русская кодировка With .Configuration.Fields .Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange .Item(v_Conf & "smtpserver") = "smtp.yandex.ru" 'Адрес SMTP-сервера .Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации .Item(v_Conf & "sendusername") = "почта" 'здесь имя пользователя без @ .Item(v_Conf & "sendpassword") = "" 'пароль .Item(v_Conf & "smtpserverport") = 465 'порт (альтернативный - 465) .Item(v_Conf & "smtpusessl") = True 'использовать ли шифрованое подключение SSL .Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения .Update End With .send End With Set o_Mess = Nothing MsgBox "НЕ ЗАПУЩЕН ОБМЕН 1С, СРОЧНО ЗАПУСТИТЬ!!!", 0, "ВНИМАНИЕ!" |
Цитата:
|
Вложений: 1
Вот.
|
Время: 01:28. |
Время: 01:28.
© OSzone.net 2001-