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

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

Ответить
Настройки темы
VBS/WSH/JS - [решено] Пауза при выполнении скрипта

Старожил


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

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


Изменения
Автор: zavoruev
Дата: 10-09-2010
Всем добрый день!
У меня проблема с 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

 

Ветеран


Contributor


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

Профиль | Отправить 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
Благодарности: 3

Профиль | Отправить 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


Ветеран


Contributor


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

Профиль | Отправить 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
Благодарности: 3

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


Теперь все понятно, спасибо большое!))

Только вот теперь одно НО. После выполнения первого скрипта на остановку службы появляется фоновое окно с просьбой нажать кнопу ОК, и если кнопка нажата не будет, второй скрипт не будет выполнен)!!! Как теперь это все победить!

Последний раз редактировалось zavoruev, 13-09-2010 в 14:44.


Отправлено: 14:33, 13-09-2010 | #5


Старожил


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

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


megaloman,
Проблема не решилась! Необходимо сделать так, что бы при появлении фонового сообщения с "Нажать кнопу ОК", втрой скрипт тоже выполнялся или автоматом прописать нажатие на кнопку ОК. А получается так, что если кнопку не нажму, втрой скрипт выполнятся не будет!!! Жду помощи)

Отправлено: 14:08, 14-09-2010 | #6


Ветеран


Contributor


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

Профиль | Отправить 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
Благодарности: 3

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


Спасибо огромное)))) буду пробывать!

Отправлено: 15:12, 14-09-2010 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сеть. Ошибка при выполнении приложения-сервера 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




 
Переход