Введение

thumb_Task_Scheduler По какой-то причине уже давно у многих пользователей появилось такое мнение, что в операционных системах Windows существуют самая «не нужная» и «бесполезная» служба и системная утилита «Планировщик заданий». Планировщик заданий версии 1.0 (присутствовал в операционной системе Windows XP и более ранних версиях) в основном предоставлялся только для нужд конечного пользователя. В современных операционных системах, таких как Windows Vista и Windows 7, функционал планировщика заданий значительно усовершенствовался. Планировщик задания является самым важным средством операционной системы, предназначенным для автоматизации рутинных операций обслуживания. Теперь планировщик заданий поддерживает модель безопасной изоляции, при помощи которой каждый набор задач, работающих в конкретном контексте безопасности, запускается в отдельных сессиях. Задачи, которые выполняются от имени разных пользователей, запускаются в отдельных сессиях – в полной изоляции друг от друга. Помимо запуска программ и сценариев, вы можете составить расписание для запуска любого средства, которое можно запустить средствами командной строки, включая утилиты командной строки, сценарии, приложения, файлы и ярлыки, а также всевозможные аргументы командной строки. При помощи триггеров, вы можете отправлять сообщение электронной почты при успешном запуске задания. При помощи приложения «Планировщик заданий» версии 2.0, вы можете даже привязать любое задание к событию, что позволит вам эффективно разрешать большинство проблем, которые могут случиться с вашей операционной системой.

Средства управления заданиями

Как говорилось выше, «Планировщик заданий» поддерживает модель изоляции, что позволяет каждому набору задач, работающих в конкретном контексте безопасности запускаться в отдельной сессии. Механизм планировщика задач запускает переходные процессы для выполнения процессов учетных записей пользователя или компьютера для запуска триггера. Триггер — это набор условий, при выполнении которых запускается задание. Триггеры, основанные на времени, запускают задание однократно в определенное время суток либо ежедневно, еженедельно или ежемесячно. Триггеры, основанные на событиях, запускают задание при возникновении определенных системных событий. Задачи могут быть запущены от таких учетных записей компьютера, как LocalSystem, LocalService или NetworkService.

Задачи могут быть запущены как локально, так и удаленно. Каждая задача может содержать несколько одновременно выполняемых действий. Несколько задач могут выполняться как параллельно, так и последовательно(одна за другой), используя синхронизацию с указанной службой или событием. Каждое действие планировщика заданий записывается в журналы «Система» и «Журналы приложений и службMicrosoftWindowsTaskScheduler». Для работы, «Планировщик заданий» использует несколько компонентов, которые предназначены для предоставления пользовательского интерфейса, механизма выполнения заданий, отслеживания и управления событиями, а именно:

  • Оснастка консоли управления Microsoft «taskschd.msc», которая включает мастер для создания и настройки задач и страницы свойств, которые обращаются к службе планировщика заданий через COM API;
  • Библиотека службы планировщика заданий SchedSvc.dll, выполняемая внутри процесса Svchost.exe, от имени учетной записи LocalSystem, которая использует компоненты TaskSchd.dll для взаимодействия с менеджером ресурсов и компонентом Service for User, предназначенным для получения доступа к учетным данным. Эта служба также считывает информацию о конфигурации из системного реестра и записывает задания на диск в формате XML;
  • Механизм переходного процесса управления TaskEng.exe, который позволяет выполнять задачи от имени учетной записи пользователя и создавать пользовательские процессы, выполняющие указанные задания;
  • Библиотека TaskComp.dll, которая обеспечивает обратную совместимость для управления и выполнения задач, которые были созданы в предыдущих версиях Windows.

Упрощенную схему архитектуры планировщика заданий версии 2.0 вы можете увидеть на следующей иллюстрации:

sched-01 
Рис. 1. Упрощенная схема архитектуры планировщика заданий

Операционная система Windows предоставляет несколько средств, предназначенных для планирования заданий на локальных и удаленных компьютерах, а именно:

Оснастка «Планировщик заданий». Оснастка консоли управления Microsoft «Планировщик заданий» позволяет запускать программы, команды и сценарии на основании расписания, а также назначать автоматически выполняемые задания, запуск которых производится в определенное время или при возникновении определенных событий средствами удобного пользовательского интерфейса. Данная оснастка содержит библиотеку всех назначенных заданий, что позволяет вам быстро находить нужные задания.

Запустить планировщик заданий вы можете любым из следующих способов:

  • Нажмите на кнопку «Пуск» для открытия меню, откройте папку «Все программы», затем откройте папку «Стандартные > Служебные» и выберите элемент «Планировщик заданий»;
  • Нажмите на кнопку «Пуск» для открытия меню, откройте «Панель управления», из списка компонентов панели управления выберите категорию «Система и безопасность», выберите подкатегорию «Администрирование», а затем перейдите по ссылке «Планировщик заданий»;
  • Нажмите на кнопку «Пуск» для открытия меню, в поле поиска введите Планировщик и в найденных результатах откройте приложение «Планировщик заданий»;
  • Воспользуйтесь комбинацией клавиш winkey+R для открытия диалога «Выполнить». В диалоговом окне «Выполнить», в поле «Открыть» введите taskschd.msc и нажмите на кнопку «ОК».

Оснастка «Планировщик заданий» изображена на следующей иллюстрации:

sched-02 
Рис. 2. Оснастка «Планировщик заданий»

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

Возможности утилиты Schtasks.exe

Утилита командной строки SchTasks.exe позволяет выполнять те же самые операции, что и оснастка «Планировщик заданий». Эти оба средства управления назначенными заданиями взаимозаменяемы, что позволяет видеть в оснастке «Планировщик заданий» все задания, созданные при помощи утилиты командной строки SchTasks.exe и наоборот. Для того чтобы воспользоваться данным функционалом, вам нужно открыть командную строку, ввести команду Schtasks и указать подкоманды с соответствующими значениями.

Данная утилита включает в себя несколько подкоманд, что позволяет гибко управлять назначенными заданиями, а именно:

  • Schtasks /Query
  • Schtasks /Create
  • Schtasks /Change
  • Schtasks /Run
  • Schtasks /End
  • Schtasks /Delete

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

Отображение назначенных заданий. Команда Schtasks /Query

Используя команду Schtasks /query, вы можете просмотреть список назначенных заданий на локальном или удаленном компьютере. Синтаксис команды очень простой и удобный:

SchTasks /Query [/S Компьютер /U /P] [Дополнительные параметры]

Доступны следующие параметры:

  • /S. Этот параметр отвечает за удаленную систему, для которой вы хотите просмотреть список назначенных заданий. После данного параметра вам нужно указать имя компьютера или его IP-адрес. Если параметр /S не будет указан, то по умолчанию выведется список назначенных заданий для локального компьютера;
  • /U. При помощи этого параметра вы можете указать учетную запись пользователя, для которого будет выполняться вывод назначенных заданий. Вы можете указывать как учетные записи пользователей, расположенных в рабочих группах, так и пользователей, которые входят в состав домена;
  • /P. Используя данный параметр, вы можете указать пароль для учетной записи, указанной при помощи параметра /U. Данный параметр не обязателен. В том случае, если вы не указали пароль, но пароль применяется для указанной учетной записи, утилита командной строки запросит ввод пароля для продолжения действий;
  • /FO. По умолчанию, команда /query отображает список назначенных заданий в виде таблицы со столбцами «Имя задачи», «Время следующего запуска» и «Состояние». Используя данную команду, вы можете изменить формат вывода данных. Помимо таблицы, вы можете формировать вывод данных в виде списка или файла со значениями строк разделенными запятыми (формат CSV);
  • /NH. Данный параметр можно применить только в том случае, если данные команды выводятся в табличном формате. Эта команда указывает на то, что при выводе данных в таблице не будут отображаться заголовки столбцов.
  • /V. Вывод данных в виде списка или файла CSV наилучшим образом сочетается с параметром /V (Verbose), что позволяет отобразить подробную информацию о каждом свойстве заданий.
  • /TN. По умолчанию при использовании команды /query на экран (или в файл) выводятся все задачи, которые расположены в приложении «Планировщик заданий». Используя данный параметр, вы можете указать определённую задачу или список задач.
  • /XML. Этот параметр позволяет отобразить задачи в формате XML. Пример вывода XML-данных для задачи, отвечающей за работу программы «Защитник Windwos»:
    	<!-- MicrosoftWindows DefenderMP Scheduled Scan -->
    <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
      <RegistrationInfo>
        <Description>Scheduled Scan</Description>
      </RegistrationInfo>
      <Triggers>
        <CalendarTrigger>
          <StartBoundary>2000-01-01T04:31:12</StartBoundary>
          <EndBoundary>2100-01-01T00:00:00</EndBoundary>
          <Enabled>true</Enabled>
          <ScheduleByDay>
            <DaysInterval>1</DaysInterval>
          </ScheduleByDay>
        </CalendarTrigger>
      </Triggers>
      <Principals>
        <Principal id="LocalSystem">
          <UserId>S-1-5-18</UserId>
          <RunLevel>HighestAvailable</RunLevel>
        </Principal>
      </Principals>
      <Settings>
        <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
        <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
        <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
        <AllowHardTerminate>true</AllowHardTerminate>
        <StartWhenAvailable>true</StartWhenAvailable>
        <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
        <IdleSettings>
          <Duration>PT0H1M0S</Duration>
          <WaitTimeout>PT4H0M0S</WaitTimeout>
          <StopOnIdleEnd>false</StopOnIdleEnd>
          <RestartOnIdle>false</RestartOnIdle>
        </IdleSettings>
        <AllowStartOnDemand>true</AllowStartOnDemand>
        <Enabled>true</Enabled>
        <Hidden>true</Hidden>
        <RunOnlyIfIdle>true</RunOnlyIfIdle>
        <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
        <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
        <WakeToRun>false</WakeToRun>
        <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
        <Priority>7</Priority>
      </Settings>
      <Actions Context="LocalSystem">
        <Exec>
          <Command>c:program fileswindows defenderMpCmdRun.exe</Command>
          <Arguments>Scan -ScheduleJob -WinTask -RestrictPrivilegesScan</Arguments>
        </Exec>
      </Actions>
    </Task>

Примеры использования:

Пример 1. В данном примере назначенные задачи будут выведены для локального компьютера в виде списка с подробной информацией о каждом значении:

Schtasks /query /FO LIST /V

sched-03 
Рис. 3. Использование команды Schtasks /query с выводом данных в формате списка

Пример 2. В этом примере будет выведена в табличном формате без наименований столбцов задача, при выполнении которой создаются обычные точки восстановления системы:

Schtasks /Query /NH /TN «MicrosoftWindowsSystemRestoreSR»

sched-04 
Рис. 4. Вывод определенной задачи

Заключение

Планировщик заданий — это важнейшее системное средство, позволяющее назначать автоматически выполняемые задания, запуск которых производится в определенное время или при возникновении определенных событий. Из этой статьи вы узнали об архитектуре планировщика задач и о средствах, предназначенных для планирования заданий на локальных и удаленных компьютерах. Был детально рассмотрен поднабор команд утилиты командной строки Schtasks.exe, предназначенный для отображения назначенных заданий на локальном или удаленном компьютере. В следующей статье я расскажу о способах создания различных задач при помощи командной строки.

Реклама