Инструменты пользователя

Инструменты сайта


notes:windows:service_ctrl

На главную, Заметки


Управление службами из командной строки

Для управления системными службами на локальных и удаленных системах используется команда контроллера служб (service controller command) SC.

Команды SC - настройка, запуск и останов системный служб Windows

ИСПОЛЬЗОВАНИЕ:
        sc <сервер> [команда] [имя_службы] <параметр1> <параметр2>...

Вот некоторые из команд:

  • SC config — настройка учетных записей регистрации и запуска служб;
  • SC query — вывод списка всех служб, настроенных на компьютере;
  • SC qc отображение конфигурации определенной службы;
  • SC start — запуск служб;
  • SC stop — останов служб;
  • SC pause — приостановка работы служб;
  • SC continue — возобновление работы служб;
  • SC failure — задание действий, выполняемых при сбое службы;
  • SC qfailure — просмотр действий, выполняемых при сбое службы.

Во всех командах можно указывать имя удаленного компьютера, со службами которого вы хотите работать. Для этого нужно указать UNC-имя (например, \\Roza) или IP-адрес (например, 192.168.1.1)

Примеры

Команда:

sc  query Spooler 

Результат:

Имя_службы: Spooler
        Тип                : 110  WIN32_OWN_PROCESS  (interactive)
        Состояние          : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        Код_выхода_Win32   : 0  (0x0)
        Код_выхода_службы  : 0  (0x0)
        Контрольная_точка  : 0x0
        Ожидание           : 0x0

Для вывода информации о всех службах в системе можно использовать команду:

sc query type=service state=all 

Пример скрипта

Скрипт проверяет запущена ли служба по списку. Если служба остановлена - запускает.

ServiceStart.cmd
@echo off
echo Date-Time  >> ServiceStart.log
date /T         >> ServiceStart.log
time /T         >> ServiceStart.log
 
rem List of controlled services
set list=ServiceUniversalBBT^
 ServiceUpdateFirmwareBBT^
 ServiceTCPLoger^
 scm-server^
 postgresql-9.5^
 pgAgent^
 MySQL^
 FirebirdServerDefaultInstance
 
(for %%a in (%list%) do (
   echo Check: %%a  
   CALL :StartService %%a
)) 
 
goto :end
 
rem Checks whether the service is running and starts it if it is stopped.
:StartService 
echo Check: %1    >> ServiceStart.log
for /F "tokens=4" %%i in ('sc query %1') DO  if [%%i]==[STOPPED]  (
	sc query %1     >> ServiceStart.log      
	sc start %1     >> ServiceStart.log
)
exit /b
 
 
:end

Для справки:


На главную, Заметки

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
Y Q U L T
 
notes/windows/service_ctrl.txt · Последнее изменение: 2024/02/08 15:57 — Юрий

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki