Введение

Из двух предшествующих частей статьи, посвященной управлению назначенными заданиями средствами командной строки, вы научились просматривать и создавать задания на локальном и удаленном компьютере. Вы научились работать с поднаборами команд /Query и /Create утилиты SchTasks. Как известно, почти все события, которые предоставляют важные хронологические сведения, записываются в определенные журналы событий операционной системы. Ознакомившись с материалом данной части статьи, вы узнаете обо всех доступных способах создания событийно-управляемых заданий, которые запускаются при регистрации компонентом Windows определенных событий в заданном журнале событий. Событие – это любое происшествие в операционной системе, которое записывается в журнал или требует уведомления пользователей или администраторов. Создание заданий подобного рода может вам значительно упростить процесс обслуживания клиентских компьютеров в вашей организации, так как при возникновении конкретного действия или ошибки, операционная система выполнит именно те действия, которые обычно вы используете для решения конкретной проблемы.

Создание событийно-управляемого задания средствами графического интерфейса

Используя графический интерфейс операционной системы Windows, вы можете создавать событийно-управляемые задания двумя способами. Вы можете создать такие события непосредственно из оснастки «Просмотр событий». Преимуществом такого способа является то, что вы можете непосредственно после нахождения события в любом из журналов сразу привязать к нему задачу. Также, у вас есть возможность создания событийно-управляемого события, используя оснастку «Планировщик заданий», но в этом случае вам необходимо заранее знать идентификатор обследуемого события. В следующих разделах вы ознакомитесь с подробным описанием каждого из этих способов на соответствующих примерах.

Создание задания, используя оснастку «Просмотр событий»

Как говорилось выше, используя оснастку «Просмотр событий» вы можете создать новое событийно-управляемое задание, которое будет выполняться только в том случае, если операционной системой будет вызвано событие, идентификатор которого полностью совпадет с ID, указанном в задании. Например, вы хотите, чтобы в том случае, когда операционной системе не удастся автоматически запустить службу «Windows Search» и при этом в журнале «Система» будет создано событие с идентификатором 7022, планировщик заданий ее автоматически перезапускал. Для того чтобы создать такое задание при помощи оснастки «Просмотр событий» и функционала планировщика заданий, выполните следующие действия:

  1. Откройте оснастку «Просмотр событий»;
  2. В дереве консоли откройте журнал, в котором будет расположено событие, и для которого вы привяжите задание, например журнал «Система»;
  3. Найдите событие, для которого будет привязано новое задание. В нашем случае – это событие от источника Service Control Manager, с ID 7022. Выделите его и привяжите к событию одним из следующих способов:
    • В панели сведений нажмите правой кнопкой мыши на выбранном событии и из контекстного меню выберите команду «Привязать задачу к событию»;
      sched3-01 
      Рис. 1. Команда «Привязать задачу к событию» оснастки «Просмотр событий»
    • Если у вас отображается панель действий, то перейдите на ней по ссылке «Привязать задачу к событию»;
    • В меню «Действие» выберите команду «Привязать задачу к событию».
  4. В открывшемся диалоговом окне «Мастер создания простой задачи» на первом шаге вы можете изменить название задания, а также ввести для него подробное описание. По умолчанию имя задания формируется из названия журнала, названия источника, а также из идентификатора события, например System_Service Control Manager_7022. После того, как вы укажите требуемое название и описание, нажмите на кнопку «Далее»;
    sched3-02 
    Рис. 2. Первый шаг мастера создания простой задачи
  5. На шаге «При записи определенного события в журнал» убедитесь в том, что задание будет создано для того журнала, источника и идентификатора события, которое вам нужно. Нажмите на кнопку «Далее»;
    sched3-03 
    Рис. 3. Просмотр источника и кода события, привязанных к данной задаче
  6. На следующем шаге, «Действие», укажите нужное для вас действие (запуск программы, отправка письма по электронной почте или вывод сообщения). Следующий шаг напрямую зависит от вашего выбора на странице «Действие». В нашем случае необходимо выбрать опцию «Запустить программу», так как в случае зависания данной службы нам нужно, чтобы она автоматически запустилась. После выбора действия, нажмите на кнопку «Далее»;
  7. На шаге «Запуск программы» вам нужно указать программу или сценарий, который должен выполняться при возникновении данного события. В нашем случае, нужно чтобы отработала команда «Net start WSearch» от имени администратора. Для этого достаточно написать простой bat-файл, единственной строкой которого будет указанная выше команда и указать путь к данному файлу в текстовом поле «Программа или сценарий»;
    sched3-04 
    Рис. 4. Путь к запуску пакетного файла
  8. На следующем шаге вы можете просмотреть сводную информацию и по нажатию на кнопку «Готово» будет создано данное задание. В связи с тем, что выполняемая команда должна запуститься от имени администратора, вам понадобится еще открыть свойства данного задания. Поэтому, установите флажок на опции «Открыть окно «Свойства» после нажатия кнопки «Готово»» и нажмите на кнопку «Готово»;
    sched3-05 
    Рис. 5. Последний шаг мастера создания простой задачи
  9. В открывшемся диалоговом окне свойств созданного задания установите флажок на опции «Выполнить с наивысшими правами» и нажмите на кнопку «ОК».
    sched3-06 
    Рис. 6. Назначение наивысших прав для выполнения задачи

Все событийно-управляемые задачи, которые вы создали из оснастки «Просмотр событий» будут расположены в узле Планировщик заданийБиблиотека планировщика заданийЗадачи просмотра событий.

Создание событийно-управляемого задания, используя оснастку «Планировщик заданий»

Используя данный способ, вы можете создавать более гибкие задания, нежели при помощи оснастки «Просмотр событий». Например, используя данную оснастку, вы можете создать событие в любом узле, можете добавить настройки для того чтобы отложить, остановить или повторить задание через указанный промежуток времени еще при создании вашего задания, а также указать все необходимые для вас условия и параметры для нового задания. В этом примере, создадим задание, которое будет выполняться при успешном запуске службы профилей пользователей. Для создания такого задания, выполните следующие действия:

  1. Откройте оснастку «Планировщик заданий»;
  2. В дереве консоли откройте тот узел, в котором будет создано новое событийно-управляемое задание, например, в данном случае, узел Планировщик заданийБиблиотека планировщика заданийMicrosoftWindowsUser Profile Service;
  3. Вызовите диалоговое окно создания задачи. Для этого выполните одно из следующих действий:
    • Нажмите правой кнопкой на панели сведений и из контекстного меню выберите команду «Создать новую задачу»;
      sched3-07 
      Рис. 7. Создание новой задачи из оснастки «Планировщик заданий»
    • Если у вас отображается панель действий, то перейдите на ней по ссылке «Создать задачу»;
    • В меню «Действие» выберите команду «Создать задачу».
  4. В диалоговом окне «Создание задачи» на вкладке «Общие» в текстовом поле «Имя» введите название задачи и, при необходимости добавьте описание для задания. По умолчанию задача будет выполняться под той же учетной записью, под которой она создается. Если вы хотите, чтобы задача выполнялась под другой учетной записью – нажмите на кнопку «Изменить» и в диалоговом окне «Выбор: Пользователь или группа» укажите ту учетную запись, под которой следует запускать задание. По умолчанию задание запускается только в том случае, когда на данном компьютере зарегистрирован пользователь, который был указан при создании текущего задания. Вы можете убрать это ограничение, установив переключатель на опцию «Выполнять вне зависимости от регистрации пользователя». Если вам необходимо, чтобы задание выполнялось от имени администратора, установите флажок на опции «Выполнить с наивысшими правами»;
    sched3-08 
    Рис. 8. Вкладка «Общие» диалогового окна создания задачи
  5. Перейдите на вкладку «Триггеры» и создайте триггер для событийно-управляемого задания. Для этого нажмите на кнопку «Создать» и в диалоговом окне «Создание триггера» выберите из раскрывающегося списка «Начать задачу» команду «При событии». Для данного триггера вы можете настраивать фильтр по определенному коду (идентификатору) события или использовать фильтр событий. Если в области «Параметры» переключатель установлен на опцию «Простое», как показано на следующей иллюстрации, то вам нужно указать журнал, источник и код событий из соответствующих раскрывающихся списков и текстового поля. При выборе настраиваемых параметров, нажмите на кнопку «Создать фильтр события» и, в открывшемся одноименном диалоговом окне, настройте фильтр события для вашего задания. В нашем случае используются простые параметры с журналом «Приложение», источником «User Profile Service» и кодом события 1531. При необходимости, в дополнительных параметрах триггера вы можете отложить задание на несколько минут, повторять задание после первого запуска в указанном промежутке времени за определенный срок, а также остановить его через определенный промежуток времени;
    sched3-09 
    Рис. 9. Диалоговое окно создания триггера
  6. На вкладке «Действия» нам нужно определить и настроить действия, которые будут выполняться при регистрации события, указанного на предыдущей вкладке. Также как и в предыдущем случае, мы можем запускать программы или скрипты, отправлять электронную почту или выводить сообщения. Допустим, нам нужно, чтобы при регистрации события с идентификатором 1531 запускалась оснастка «Локальные пользователи и группы». Для этого в текстовом поле «Программа или сценарий» введите lusrmgr.msc. В том случае, если для запуска программы или сценария необходимо ввести аргументы – укажите их в текстовом поле «Добавить аргументы»;
    sched3-10Рис. 10. Создание действия для задачи
  7. При необходимости, на вкладке «Условия» вы можете указать дополнительные условия, которые работают совместно с триггерами и позволяют определить запуск и остановку задания. На вкладке «Параметры» вы можете настроить параметры задания, которых не было на всех предыдущих вкладках;
  8. После того как вы укажите все параметры задания, нажмите на кнопку «ОК».

Создания событийно-управляемого задания средствами командной строки

Как вы уже узнали из предыдущих статей данного цикла, для управления заданиями в операционных системах Windows предусмотрена утилита командной строки SchTasks. Также как и в случае с обычными заданиями, для назначения задания, которое исполняется при регистрации определенных событий в заданном журнале событий, применяется команда SchTasks /Create. В данном случае, в качестве параметра /SC необходимо указать значение ONEVENT и синтаксис данной команды будет выглядеть следующим образом:

SchTasks /Create /TN «Событийно-управляемое задание» /TR «Действие» /SC ONEVENT /EC «Журнал» /MO «Событие»

где:

/SC ONEVENT. Данный параметр указывает на то, что необходимо создать событийно-управляемое задание;

/EC. Используя этот параметр, вы можете указать название отслеживаемого журнала, имя которого можно узнать, используя команду Wevtutil;

/MO. Значением этого параметра должен быть XPath-запрос, который позволяет отслеживать сведения о событиях. Для того чтобы узнать XPath-запрос вам нужно экспортировать созданное ранее событийно-управляемое задание или ознакомиться к XML представлением самого события.

Обычно для создания событийно-управляемых заданий используются XPath-запросы четырех типов:

  1. Запрос, при помощи которого вы можете указать определенные события по их идентификатору:*[System[(EventID=Идентифткатор)]]
  2. Запрос, используя который вы можете указать несколько идентификаторов событий:*[System[(EventID=Идентифткатор or EventID=Другой идентификатор … or EventID=Последний идентификатор)]]
  3. Запрос, при помощи которого вы можете указать одновременно источник и идентификатор события:*[System[Provider[@Name=Источник’] and EventID=Идентификатор]]
  4. Фильтр, который применяется для поиска событий по разным категориям (в данном случае – события для категорий «Критические» и «Ошибка»):*[System[(Level=1 or Level=2)]]

В следующем примере будет создано событие, используя которое, при каждом подключении USB-накопителя компьютера будет открываться антивирусное программное обеспечение Microsoft Security Essentials и запускаться быстрая проверка:

SchTasks /Create /TN “Быстрая проверка MSE” /TR “’%ProgramFiles%Microsoft Security EssentialsMpCmdRun.exe’ Scan -1” /SC ONEVENT /EC “Microsoft-Windows-DriverFrameworks-UserMode/Operational” /MO “*[System[Provider[@Name=’Microsoft-Windows-DriverFrameworks-UserMode’] and EventID=2105]]” /RL Highest

sched3-11 
Рис. 11. Создание событийно-управляемого задания при помощи командной строки

Заключение

В данной статье я продолжил обзор утилиты командной строки, предназначенной для планирования заданий. Были рассмотрены событийно-управляемые задания, которые запускаются при регистрации компонентом Windows определенных событий в заданном журнале событий. Рассмотрены три примера: создание заданий при помощи оснастки «Просмотр событий», оснастки «Планировщик заданий», а также средствами утилиты командной строки SchTasks. В следующей статье я подробно опишу структуру XML файла экспортированных заданий.

Реклама