Планировщик задач для остановки службы

Вопрос или проблема

Мне нравится создавать задачи, сработанные состоянием службы (Запущена), чтобы остановить службу. Часть, отвечающая за остановку, исправлена и работает, нужно только то, что отвечает за определение того, что служба запущена. Я нашел, что можно инициировать При Событии > настройка > пользовательская > XML. У меня есть код, но он не работает. Возможно, мой код неверен? Код:

    <QueryList>
  <Query Id="0" Path="System">
    <Select Path="System"> 
         *[EventData[Data[@Name="param1"] and (Data="Windows Update")]] 
         and
         *[EventData[Data[@Name="param2"] and (Data="Running")]] 
       </Select>
  </Query>
</QueryList>

Я также пробовал wuauserv вместо Windows Update, также running и Running. Системный язык – английский.

Ответ или решение

Использование Планировщика задач для Остановка Сервиса

Планировщик задач в Windows — это мощный инструмент, позволяющий автоматизировать выполнение различных действий, включая остановку служб по определенным событиям. В вашем случае целью является настройка триггера, который будет срабатывать при изменении состояния службы (в частности, когда она становится "Запущенной"). Давайте разберёмся, как правильно настроить XML-запрос для достижения этой цели.

Шаг 1: Понимание структуры событий в журнале Windows

Для правильного выбора триггера необходимо иметь представление о том, как организация событий в журнале Windows. Состояние служб, таких как "Windows Update", фиксируется в системных событиях, и именно их мы будем использовать в нашем запросе.

Шаг 2: Корректировка XML-запроса

Ваш оригинальный XML-запрос имеет некоторые недостатки, которые мы исправим. Основная задача заключается в корректной выборке события, когда служба находится в состоянии "Запущена". Попробуйте следующую модификацию вашего запроса:

<QueryList>
  <Query Id="0" Path="System">
    <Select>
      *[System[(EventID=7036)]]
      and 
      *[EventData[Data[@Name="ServiceName"] and (Data="wuauserv")]]]
      and 
      *[EventData[Data[@Name="NewState"] and (Data="Running")]]
    </Select>
  </Query>
</QueryList>

В этом запросе:

  • Мы фильтруем события по ID события 7036, которое указывает на изменение состояния службы.
  • Проверяем, что имя службы соответствует "wuauserv" (служба Центра обновления Windows).
  • Убедимся, что новое состояние ("NewState") равно "Запущено".

Шаг 3: Настройка триггера в Планировщике задач

Теперь, когда у вас есть скорректированный XML-код, сделайте следующие шаги для его реализации:

  1. Откройте Планировщик задач (Task Scheduler).
  2. Создайте новую задачу или отредактируйте существующую.
  3. Перейдите к вкладке "Триггеры" и добавьте новый триггер.
  4. Выберите "При событии" (On an event).
  5. Укажите "Настройки" (Settings) и выберите "Пользовательский" (Custom).
  6. Вставьте скорректированный XML-код в поле для XML-фильтра.
  7. На вкладке "Действия" укажите команду для остановки службы. Пример команды в PowerShell:
    Stop-Service -Name wuauserv

Шаг 4: Тестирование и отладка

После настройки триггера важно провести тестирование, чтобы убедиться, что все работает как задумано. Вы можете временно изменить состояние службы и удостовериться, что ваше действие выполняется. Также не забудьте проверять журнал событий для диагностики возможных проблем.

Заключение

Использование Планировщика задач для автоматизации управления службами — это полезный подход, который может существенно оптимизировать вашу работу. Если у вас остались вопросы по настройке, или если ваш триггер по-прежнему не срабатывает, стоит проверить настройки безопасности и разрешения, которые могут влиять на выполнение задач. С помощью правильной настройки вы сможете эффективно управлять состоянием служб в вашей системе.

Если у вас возникнут дальнейшие вопросы, не стесняйтесь задавать их. Успехов в вашей работе!

Оцените материал
Добавить комментарий

Капча загружается...