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
Для справки:
notes/windows/service_ctrl.txt · Последнее изменение: 2024/02/08 15:57 — Юрий
Обсуждение