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

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Службы - [решено] вопрос: контроль за службой

Ответить
Настройки темы
Службы - [решено] вопрос: контроль за службой

Старожил


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

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


Добрый час ! Вопрос: можно ли средствами CMD контролировать статус службы (работает, пауза, останов), например может есть команда которая возвращает значение некого кода статуса ? Спасибо.

Отправлено: 13:05, 24-01-2008

 

Googler


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

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


Цитата SavmiN:
Logon-скрипт - очень любопытно! поясни! »
Пуск\Выполнить: gpedit.msc
Путь: Конфигурация пользователя\Конфигурация Windows\Сценарии

сюда можно добавлять любые *.BAT, *.CMD, *.VBS или *.JS скрипты на вход и выход... правда локальные политики (в отличие от доменных) отрабатывают одинаково для всех локальных пользователей, поэтому распознавание пользователей придется встраивать в скрипт... вот доработанный вариант батника, который:

для пользователя USER-1: останавливает и отключает службу Планировщика задач и перегружает "Обозреватель"
для пользователя USER-2: восстанавливает состояние Планировщика и перезапускает службу Диспетчера печати.
Код: Выделить весь код
@echo off

IF "%USERNAME%"=="User-1" (
	CALL :SC_STOP SCHEDULE
	CALL :SC_DISABLE SCHEDULE
	CALL :SC_RESTART BROWSER
)

IF "%USERNAME%"=="User-2" (
	CALL :SC_ENABLE SCHEDULE
	CALL :SC_START SCHEDULE
	CALL :SC_RESTART SPOOLER
)

EXIT

:SC_STOP
:: -----
Set STATUS=RUNNING
@echo Остановка сервиса "%1"...
:SC_STOP_LOOP
SC STOP %1 >nul
For /F "Tokens=3 Usebackq Delims=: " %%i in (`SC QUERY %1^|FIND "STATE"`) Do SET STATUS=%%i
If NOT "%STATUS%"=="STOPPED" GOTO :SC_STOP_LOOP
@echo Сервис остановлен!
:: -----
GOTO :EOF

:SC_START
:: -----
Set STATUS=STOPPED
@echo Запуск сервиса "%1"...
:SC_START_LOOP
SC START %1 >nul
For /F "Tokens=3 Usebackq Delims=: " %%i in (`SC QUERY %1^|FIND "STATE"`) Do SET STATUS=%%i
If NOT "%STATUS%"=="RUNNING" GOTO :SC_START_LOOP
@echo Сервис запущен!
:: -----
GOTO :EOF

:SC_RESTART
:: -----
CALL :SC_STOP  %1
CALL :SC_START %1
:: -----
GOTO :EOF

:SC_ENABLE
:: -----
SC CONFIG %1 start= demand >nul
@echo Сервис %1 включен!
:: -----
GOTO :EOF

:SC_DISABLE
:: -----
SC CONFIG %1 start= disabled >nul
@echo Сервис %1 отключен!
:: -----
GOTO :EOF
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:56, 31-01-2008 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


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

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


Есть подробная информация по возможностям командной строки ? в справочнике параметров по командной строке (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 Произведен перезапуск сервиса!

Отправлено: 09:26, 31-01-2008 | #22

HLT HLT вне форума

Ветеран


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

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


Цитата foxbat:
For /F "Tokens=3 Usebackq Delims=: »
Хорошее описание токенсов и делимсов тут: http://www.robvanderwoude.com/ntfortokens.html

-------
Сообщение помогло? Нажмите внизу ссылку "Полезное сообщение".


Отправлено: 09:54, 31-01-2008 | #23


Googler


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

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


Цитата foxbat:
Есть подробная информация по возможностям командной строки ? »
кое-что по-русски:
http://www.windowsfaq.ru/content/category/3/19/57/
http://www.windowsfaq.ru/content/category/3/7/45

Отправлено: 10:12, 31-01-2008 | #24


Аватара для SavmiN

Пользователь


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

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


Цитата amel27:
локальные политики (в отличие от доменных) »
ну и попутный вопрос! - для домена на отдельном находящемся ПК - тоже в GP можно настроить для каждого или всех сразу свои сценарии??
а также: USER-1 - это имя учетной записи - а пароль как указывать для автологона? ну и совсем плохой вопрос - что такое в данном случае "%1" = что то припоминаю …

HLT,
Цитата:
описание токенсов и делимсов
- ну раз начали издеваться - то хотя бы на понятном русском языке %))) чтобы прочесть была возможность!

-------
Прежде чем «что-то» сделать — надо это «что-то» придумать ©
savmin.ru


Отправлено: 01:57, 01-02-2008 | #25


Googler


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

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


Цитата SavmiN:
в GP можно настроить для каждого или всех сразу свои сценарии?? »
в домене GPO привязываются к подразделениям (OU), соответственно политики отрабатывают для всех пользователей, входящих в этот контейнер... а уж сколько создавать OU и как по ним раскидывать пользователей - вопрос планирования.
Цитата SavmiN:
USER-1 - это имя учетной записи - а пароль как указывать для автологона? »
скрипт отработает автоматически после регистрации пользователя, пароль не нужен
Цитата SavmiN:
что такое в данном случае "%1" »
макрос, заменяемый при выполнении на значение первого параметра, переданного скрипту (или процедуре)
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:52, 01-02-2008 | #26


Старожил


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

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


если не трудно разьясните пож-та эту строку, я что понял сам откаментирую а вы меня поправте если не так:
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

тоже ничего нет

Отправлено: 13:12, 01-02-2008 | #27


Аватара для SavmiN

Пользователь


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

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


amel27, у вас указано: Планировщик - "SCHEDULE", а после Сервер печати - "Spooler" ну и ещё "Browser"
У Планировщика исполняемый файл schedule.exe, у brouser - explorer.exe не знаю по печати, но вот сам вопрос: на Пк установлена оболочка Pshell с исполняемым файлом pshell.exe - как мне указывать его в коде? - это ведь не стандартная служба или сервис Windows … также имеется ещё одна программа за которой требуется наблюдение и перезапуск в случае сбоя или умышленной попытки отключения classic.exe - какое имя требуется задать в коде?
Спасибо!

-------
Прежде чем «что-то» сделать — надо это «что-то» придумать ©
savmin.ru


Отправлено: 17:08, 01-02-2008 | #28


Googler


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

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


Цитата foxbat:
только с НУЛом у меня всё равно пустой экран »
можешь убрать 2&>1 - подавляет сообщения об ошибках... если ошибок нет то и перенаправлять нечего

Цитата SavmiN:
как мне указывать его в коде? »
смотри имя ключа реестра в "HKLM\SYSTEM\CurrentControlSet\Services" (искать можно по полному имени сервиса или имени образа pshell.exe)

Отправлено: 17:12, 01-02-2008 | #29


Аватара для SavmiN

Пользователь


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

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


amel27, отлично! - осталось уточнить - уточняю для "User-2"
Цитата amel27:
CALL :SC_ENABLE SCHEDULE
CALL :SC_START SCHEDULE »
- это запуск программы при загрузке - а где наблюдение? - если в случае сбоя произойдЁт отключение SCHEDULE - потребуется его повторный запуск, а при невозможности ребут ОС !!!
поясни пожалуйста !!!
Спасибо!

-------
Прежде чем «что-то» сделать — надо это «что-то» придумать ©
savmin.ru


Отправлено: 19:26, 03-02-2008 | #30



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Службы - [решено] вопрос: контроль за службой

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] контроль за службой foxbat Скриптовые языки администрирования Windows 11 30-07-2009 08:47
Система - [Решено]Изменение имени процесса запускаемого службой Ventrilo Tomonaka Программное обеспечение Windows 1 10-07-2009 23:02
[решено] Проблемы со службой печати на Win2003 banbug Microsoft Windows NT/2000/2003 6 29-01-2009 01:31
Загрузка - [решено] Контроль автозагрузки Basser Microsoft Windows Vista 5 08-06-2007 07:06




 
Переход