|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Пауза при выполнении скрипта |
|
VBS/WSH/JS - [решено] Пауза при выполнении скрипта
|
Старожил Сообщения: 157 |
Профиль | Отправить PM | Цитировать
Всем добрый день!
У меня проблема с DrWeb ES 5, служба постоянно падает и агенты на клиентских машинах не видят сервер. Мне необходимо написать скрипт где сначала эта служба останавливается и только после остановки вновь запускается (рестарт не помогает, т.к вываливается ошибка о невозможности сделать рестарт). У меня есть мои ваяния, но посмотрите пож-та))) и по возможности исправьте set FS = CreateObject("Scripting.FileSystemObject") set WSHShell = CreateObject("WScript.Shell") script_stop = """C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe stop""" script_start = """C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe start""" WshShell.Run script_stop & "" & script_start, 0, True |
|
Отправлено: 14:01, 10-09-2010 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать Я не знаю, как запускается и останавливается указанная Вами служба, но, ИМХО, у Вас в коде ошибки. При выполнении Вашего скрипта должна была выскочить ошибка "Не удаётся найти указанный файл". Как минимум надо писать:
script_stop = """C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe"" stop" И в методе Run нельзя так механически объединять запуск двух екзешников. На каждый запуск должен быть свой Run. Вот пример, он работает. Увы, указанной Вами службы у меня нет, попробовать не на чем. Set WS = CreateObject("WScript.Shell") Prg = """C:\Program Files\WinAmp\winamp.exe"" E:\Audio\Барды\Атланты.mp3" WS.Run Prg, 1, True Prg = """C:\Program Files\WinAmp\winamp.exe E:\Audio\Барды\Атланты.mp3""" |
------- Отправлено: 21:07, 11-09-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать Спасибо за подсказку! Но хотелось бы знать, как сделать паузу при выполнении данного скрипта??? Не понятно! Мне необходимо чтобы сначало выполнялся скрипт на остановку службы, и только после выполнения данного скрипта (остановка службы) осуществлялся запуск второго скрипта (запуск службы)
set WSHShell = CreateObject("WScript.Shell") script_stop = """C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe"" stop" script_start = """C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe"" start" WshShell.Run script_stop, 0, True --- что тут должно быть WshShell.Run script_start, 0, True ---- что тут должно быть |
Отправлено: 11:53, 13-09-2010 | #3 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать Можно сделать паузу, но вам не надо. Третий аргумент Run =True. Он отвечает за то, что скрипт дождется окончания Run а затем продолжит выполнение следующего Run.
Пауза в скрипте вообще-то делается WScript.Sleep 60000*0.2 Здесь пауза - 0.2 минуты |
------- Последний раз редактировалось megaloman, 13-09-2010 в 14:07. Отправлено: 13:54, 13-09-2010 | #4 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать Теперь все понятно, спасибо большое!))
Только вот теперь одно НО. После выполнения первого скрипта на остановку службы появляется фоновое окно с просьбой нажать кнопу ОК, и если кнопка нажата не будет, второй скрипт не будет выполнен)!!! Как теперь это все победить! |
|
Последний раз редактировалось zavoruev, 13-09-2010 в 14:44. Отправлено: 14:33, 13-09-2010 | #5 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать megaloman,
Проблема не решилась! Необходимо сделать так, что бы при появлении фонового сообщения с "Нажать кнопу ОК", втрой скрипт тоже выполнялся или автоматом прописать нажатие на кнопку ОК. А получается так, что если кнопку не нажму, втрой скрипт выполнятся не будет!!! Жду помощи) |
Отправлено: 14:08, 14-09-2010 | #6 |
Ветеран Сообщения: 2726
|
Профиль | Отправить PM | Цитировать Плохо, не на чем проверить. Вот рабочий пример:
Set WS = CreateObject("WScript.Shell") Set theProga = WS.Exec("""C:\Program Files\WinAmp\WinAmp.exe"" ""E:\Audio\Mud\1974 - Mud Rock I\01 Rocket.mp3""") ' Запустим программу WS.AppActivate (theProga.ProcessID) ' Активируем окно запущенного приложения WScript.Sleep (3000) ' Для отладки, чтобы успеть посмотреть, как переключается WS.SendKeys ("%{F4}") ' Пошлём Alt F4 set WS = CreateObject("WScript.Shell") Set theProga = WS.Exec("""C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe"" stop") WScript.Sleep (20000) ' Дадим время на работу екзешника (здесь 20 сек) - придержим выполнение скрипта WS.AppActivate (theProga.ProcessID) ' Активируем окно запущенного приложения WS.SendKeys ("{ENTER}") ' Пошлём ENTER для нажатия ОК Set theProga = WS.Exec("""C:\Program Files\DrWeb Enterprise Server\bin\drwcsd.exe"" start") WScript.Sleep (20000) ' Дадим время на работу екзешника (здесь 20 сек) - придержим выполнение скрипта WS.AppActivate (theProga.ProcessID) ' Активируем окно запущенного приложения WS.SendKeys ("{ENTER}") ' Пошлём ENTER для нажатия ОК |
------- Отправлено: 14:08, 14-09-2010 | #7 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать Спасибо огромное)))) буду пробывать!
|
Отправлено: 15:12, 14-09-2010 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сеть. Ошибка при выполнении приложения-сервера | prokazzza | Microsoft Windows Vista | 13 | 05-12-2010 16:48 | |
Ошибка - Ошибка ОС при выполнении программ DOS | a715 | Microsoft Windows 2000/XP | 8 | 25-08-2009 21:59 | |
[решено] Пауза скрипта до нажатия любой клавиши | Dj Dynamite | AutoIt | 1 | 12-02-2009 13:31 | |
VBS/WHS/JS - [решено] Ошибка 80041014 при выполнении сценария | EvgeniyQQQ | Программирование и базы данных | 2 | 31-07-2008 09:57 | |
Комп виснет при выполнении команды ms-dos | felo | Microsoft Windows 95/98/Me (архив) | 2 | 01-09-2004 10:18 |
|