![]() |
вопрос: контроль за службой
Добрый час ! Вопрос: можно ли средствами CMD контролировать статус службы (работает, пауза, останов), например может есть команда которая возвращает значение некого кода статуса ? Спасибо.
|
sc /?
sc query имя_службы Пример: sc query wuauserv |
имя службы ? я так понимаю это то что в taskmanager написано ? Вот например данный пример работает, а службу такую я не нашёл wuauserv. С другой стороны так которая есть служба не работает, выдает X:\>sc query lsass
[SC] EnumQueryServicesStatus:OpenService FAILED 1060: |
Цитата:
Или полный список (служб и драйверов) в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services |
Большое спасибо, то что надо. Ещё вопрос напоследок, а это применимо только к службам ? а к процессам нет ? т.е. я хочу сказать если у меня в диспетчере "висит" qip.exe, его можно таким образом контролировать ?
|
foxbat, определить, запущен процесс или нет?
Tasklist /? Tasklist /V /FI "IMAGENAME eq qip.exe" |
нет немножко не то, в общем я понял что с помощью sc query можно узнать статус службы, теперь надо узнать как его использовать, в общем задача такая, что есть некая служба "Х" и ей по требованию надо сделать останов (net stop X), но она не всегда с первого раза останавливается, надо делать ещё и ещё до тех пор пока не будет остановлена а затем вновь запустить. Мне сказали что такое (батник который контролировал останов службы и вновь её запускал) возможно сделать средствами командного процессора windows. Можно такое сделать ?
P.S. про qip я глупость спросил :) |
Цитата:
|
Цитата:
Код:
@echo off |
amel27 , у Вас этот скрипт без ошибок отрабатывает ?
|
Цитата:
Если у Вас выдает ошибку - сообщение об ошибке сюда |
Цитата:
сохранить как … и в автозагрузку ??? или в реестр ??? хочу знать! ;) |
|
Цитата:
|
Цитата:
|
Цитата:
это я к тому, что скрипт отработает только если пользователь - локальный админ |
HLT,
+++ c:\>restar.vbs messenger +++ Ошибка сценария Сценарий: c:\resart.vbs Строка: 1 Символ: 1 Ошибка: недопустимый знак Код:.... Источник..... короче ругается на @ Убираем собачку, ругается на Строка 2 Сивол 9 (на кавычки и т.д.). В этих всяких криптах я не чень силён, может тут у меня какой компилятор не правильный ?? |
foxbat, пост № 9 - скрипт .cmd, а не .vbs.
|
:) спасибо большое ! Ошибок нет. :)
|
как я поняв - "сохранить как …" script.cmd ???
Цитата:
Цитата:
Цитата:
а вот как раз про Logon-скрипт - очень любопытно! поясни! foxbat, - вы запускаете Цитата:
|
Цитата:
Путь: Конфигурация пользователя\Конфигурация Windows\Сценарии сюда можно добавлять любые *.BAT, *.CMD, *.VBS или *.JS скрипты на вход и выход... правда локальные политики (в отличие от доменных) отрабатывают одинаково для всех локальных пользователей, поэтому распознавание пользователей придется встраивать в скрипт... вот доработанный вариант батника, который: для пользователя USER-1: останавливает и отключает службу Планировщика задач и перегружает "Обозреватель" для пользователя USER-2: восстанавливает состояние Планировщика и перезапускает службу Диспетчера печати. Код:
@echo off |
Есть подробная информация по возможностям командной строки ? в справочнике параметров по командной строке (v 1.1) я не нахожу описания и поэтому не могу разобрать например такие операторы
@echo off If "%1"=="" Exit Set STATUS=RUNNING @echo Остановка сервиса "%1"... :LBL0 SC STOP %1 >nul 2>&1 For /F "Tokens=3 Usebackq Delims=: " %%i in (`SC QUERY %1^|FIND "STATE"`) Do SET STATUS=%%i If NOT "%STATUS%"=="STOPPED" GOTO :LBL0 SC START %1 >nul 2>&1 @echo Произведен перезапуск сервиса! |
Цитата:
|
Цитата:
http://www.windowsfaq.ru/content/category/3/19/57/ http://www.windowsfaq.ru/content/category/3/7/45 |
Цитата:
а также: USER-1 - это имя учетной записи - а пароль как указывать для автологона? ну и совсем плохой вопрос - что такое в данном случае "%1" = что то припоминаю … HLT, Цитата:
|
Цитата:
Цитата:
Цитата:
|
если не трудно разьясните пож-та эту строку, я что понял сам откаментирую а вы меня поправте если не так:
SC STOP %1 >nul 2>&1 SC - команда cmd STOP - команда (параметр) команды SC %1 - параметр командной строки, в данном случае название сервиса -до этого момента понятно, а дальше >nul - ?? некое пустое устройство-файл, т.е. перенаправляем вникуда, (отчего ничего не видим в консоли когда выполняем команду) 2>&1 - "2>&1" это дублирование дескрипторов, т.е. выход дескриптора 2 (Ошибка вывода) направляется в дескриптор 1 (Вывод командной строки), так ? только с НУЛом у меня всё равно пустой экран. Вот к примеру пускаю В CMD X:\>sc stop W32Time SERVICE_NAME: W32Time TYPE : 20 WIN32_SHARE_PROCESS STATE : 3 STOP_PENDING (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x1 WAIT_HINT : 0x3e8 X:\>sc stop W32Time >nul ничего нет X:\>sc stop W32Time >nul 2&>1 тоже ничего нет |
amel27, у вас указано: Планировщик - "SCHEDULE", а после Сервер печати - "Spooler" ну и ещё "Browser"
У Планировщика исполняемый файл schedule.exe, у brouser - explorer.exe не знаю по печати, но вот сам вопрос: на Пк установлена оболочка Pshell с исполняемым файлом pshell.exe - как мне указывать его в коде? - это ведь не стандартная служба или сервис Windows … также имеется ещё одна программа за которой требуется наблюдение и перезапуск в случае сбоя или умышленной попытки отключения classic.exe - какое имя требуется задать в коде? Спасибо! |
Цитата:
Цитата:
|
amel27, отлично! - осталось уточнить - уточняю ;) для "User-2"
Цитата:
поясни пожалуйста !!! Спасибо! |
Цитата:
|
Цитата:
К примеру, если в течении минуты не запученна программа - то ПК перезагружается или отключается (во избежание самопроизвольного ребута) Спасибо! |
Цитата:
Код:
@echo off |
Цитата:
|
amel27, рассказываю
при старте ОС кратковременно появляется окошко cmd и усЁ %( пробую отключать наблюдаемую службу - хм.. отключается и ничего не происходит - не востанавливается, сообщения никакого нет! ребута нет %( подскажИте ? |
Цитата:
|
Цитата:
вот я и пытался его (pshell.exe) отключать - отключаю - но востановления не происходит! %( Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
SPOOLER - ID службы диспетчера печати :SC_DISABLE - отключить службу; :SC_ENABLE - включить службу; :SC_START - запустить службу; :SC_STOP - остановить службу; :SC_RESTART - SC_STOP+SC_START |
Цитата:
Возможно причина в том что именно эта программа не запускается службой ? Но и даже та программа, которая запускается как служба (в частности - имя службы "GccServ" - это и есть ID? ) не получает наблюдения и рестарта в случае отключения или сбоя во время работы ПК Цитата:
Примерно так! Ппрограмма GC.exe управляет включением и остановкой(блокирует) ПК. Программа Pshell.exe - оболочка на ПК - ограничивает возможности пользователя и востанавливает GC.exe при перезапуске ОС - но не в процессе работы. Тоесть - если отключить процесс pshell.exe то можно остановить процесс GC.exe и службу GCServ - и как следствие играться на ПК без ограничения времени. Вот и требуется наблюдение за процессами pshell.exe; gc.exe и службой GCServ и в случае их отключения или остановки - Вывести сообщение на экран "Чтото типа штраф 200 грн за умышленное отключение служб контроля" и снова их перезапустить или вырубить ПК. Мда!! надо было сразу так обЪяснить Сорри! |
Цитата:
Цитата:
Код:
NET STOP GccServ Цитата:
|
В оболочке pshell.exe - есть возможность автологона с правами админа - загрузка происходит под учеткой User-2 (User-1 - это учетка Администратор); после подгружается программа gc.exe (учет времени и трафика) и служба GccServ этой же программы (лично мне не понятно для каких целей ) - и если я наберу "NET STOP GccServ" - то ничего не произойдет! а вот если я отключю к примеру процесс gc.exe - то при следующем входе в систему программа pshell.exe востановит этот gc.exe (имеется там опция) - а нужно чтобы восстанавливался gc.exe сразу или производился shutdown -s
|
Цитата:
Цитата:
назначить на каждом компе задание на запуск этого батника каждую минуту Код:
pslist /accepteula gc -e Если очень хочется - можно сделать задание, которое будет удаленно проверять статус службы и удаленно запускать её. Батник запускается на сервере от админской учетной записи, проверяет статус службы на всех нужных компах Список нужных компов находится в файле computers.lst Код:
@for /F %%a in (computers.lst) do ( |
Цитата:
и как втаком случае наблюдать за службой GccServ - они одно целое с процессом gc.exe |
Цитата:
имя компьютеров ? в каком виде - к примеру группа "Club" там 50 пк от Club-1 … до Club-50 - с такими именами и задавать? или по ip-адресам? - не совсем ясно - та и не нашел по сайту инструкций чётких ( Спасибо! и как я понимаю здесь Цитата:
|
Цитата:
Цитата:
Описание команды IF - тут |
|
Цитата:
Должно работать Цитата:
|
Время: 03:00. |
Время: 03:00.
© OSzone.net 2001-