Общие сведения о планировщике заданий Windows.



    В процессе эксплуатации системы часто требуется выполнять периодические регламентные задачи обслуживания в автоматическом режиме без вмешательства человека, например, проверку наличия обновлений, создание резервных копий критически важных файлов, выполнения сценариев администрирования и т.п. Для планирования и автоматического выполнения задач в среде Windows предусмотрено стандартное средство Планировщик заданий. Планировщик заданий обеспечивает выполнение заранее подготовленных задач в определенное время, или при возникновении определенных событий, однократно или с периодичностью, в контексте системных или пользовательских учетных записей. Задачи могут обеспечивать исполнение сценариев командной строки, скриптов WSH, командлетов PowerShell или приложений. В отличие от предыдущих версий Windows, Windows Vista, 7, 8 содержат обширную библиотеку предварительно настроенных заданий. Эти задания выполняют широкий круг операций, обеспечивающих обслуживание системы и поддержание ее в рабочем состоянии. Кроме того, Планировщик заданий в данных операционных системах, стал необходимым для нормальной работы компонентом, который нельзя отключить стандартными средствами.

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

В Windows существуют два основных типа планируемых заданий

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

Скрытые задания. Задания этого типа используются для автоматизации выполнения специальных системных задач. Эти задания в стандартном режиме просмотра скрыты от пользователей и их изменение нежелательно.

Каждое задание планировщика имеет определенные свойства:

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

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

Параметры - определяют дополнительные параметры, влияющие на выполнение задания – перезапуск после сбоя, выполнение просроченного задания, поведение при наличии уже выполняющегося задания.

Настройки планировщика и параметры заданий хранятся в разделе реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule

Результаты работы планировщика заданий могут фиксироваться в журнале, если это определено его настройками (В консоли управления планировщиком заданий - Действие - Отключить (Включить) журнал всех заданий).

Управление заданиями на локальных и удаленных системах.



    Управление заданиями Windows выполняется с помощью специальной оснастки консоли управления Microsoft (mmc.exe), для запуска которой можно воспользоваться главным меню Панель управления - Администрирование - Управление компьютером - Планировщик заданий, или Выполнить(комбинация Win+R) - taskschd.msc.

Планировщик заданий Windows


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

Для работы с заданием щелкните по нему правой кнопкой мышки в основной панели и в контекстном меню выберите одну из следующих команд:

  • Удалить (Delete) — полностью удалить задание;

  • Отключить (Disable) — временно отключить задание;

  • Свойства (Properties) — просмотреть и/или редактировать свойства задания.

  • Экспортировать (Export) — экспортировать задание в файл, данные из которого можно импортировать на другом компьютере. Операционные системы Windows 8 и Windows Server 2012 имеют такую же архитектуру заданий, как и Windows 7 и Windows Server 2008 R2, но архитектура заданий более ранних версий Windows другая. При экспорте заданий можно указать операционную систему, с которой это задание допустимо использовать, с помощью параметра "Настроить для" (Configure for) на вкладке "Общие" окна свойств задания.

  • Выполнить (Run) — запустить задачу на выполнение;

  • Завершить (End) — если задача выполняется, остановить ее выполнение.

    Задания, созданные пользователями и прикладными программами можно изменять или удалять без каких-либо особых проблем, но большинство заданий, созданных самой операционной системой, трогать не стоит, поскольку это может иметь неприятные последствия. Для отображения системных задач в меню "Вид" необходимо установить флажок "Отобразить скрытые задачи" (Show hidden tasks).

    Просмотр списка заданий, исполняющихся на компьютере в настоящее время.



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



    Создание заданий для планировщика.

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

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

    Для проверки уровня привилегий используется стандартная команда whoami в цепочке с командой find, для вывода сообщений - msg. В результате выполнения командного файла, на экран выводится сообщение "Задача выполняется с правами администратора" или " Задача выполняется с правами пользователя - имя ". Пусть данный командный файл имеет имя who-admin.bat. При желании, описание используемых команд и принцип определения привилегий, с которыми выполняется командный файл, можно найти в разделе Список команд CMD Windows

    Содержимое файла с именем who-admin.bat:

    @echo OFF
    WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"
    if %ERRORLEVEL% == 0 goto admin
    msg * Задача выполняется с правами пользователя - %USERNAME%
    exit
    :admin
    msg * Задача выполняется с правами администратора.
    
    Файл можно создать в обычном текстовом редакторе, скопировав приведенный выше текст, выделенный зеленым цветом и присвоив ему имя who-admin.bat . Для правильного отображения кириллицы необходимо использовать DOS-кодировку (CP866, кодовую страницу 866) или изменить текст сообщений для вывода на английском языке. Если текстовый редактор не поддерживает кириллицу в DOS-кодировке, можно воспользоваться сторонними программами ( например - iconv ) или онлайн-сервисами наподобие Универсального декодера-конвертера кириллицы. Можете просто скачать архив who-admin.zip с командным файлом в правильной кодировке.

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

    Новую задачу можно создать следующим способом:

    С использованием пункта меню Действие - Создать задачу или через контекстное меню, вызываемое правой кнопкой мышки на уровне "Планировщик заданий". После чего запускается мастер создания задачи:

    Мастер создания задачи для планировщика заданий Windows


    На вкладке Общие окна мастера введите имя задания и его описание. Имя, для примера - Test1, а описание "Test Task 1". Описание может быть произвольным текстом, но желательно, чтобы оно отражало суть создаваемой задачи. Остальные настройки можно не выполнять, оставив значения по умолчанию. Эти настройки будем менять перед выполнением созданной задачи, чтобы понять их смысл и назначение.

    По умолчанию задания исполняются, только если пользователь выполнил вход в систему. Чтобы выполнять задачу независимо от того, работает пользователь в системе или нет, используется переключатель Выполнять вне зависимости от регистрации пользователя (Run whether user is logged on or not). Также можно задать выполнение задания с наивысшими полномочиями и/или настроить его для определенных версий Windows.

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

    Триггер задачи для планировщика заданий Windows


    Для целей обучения, лучше определить триггер таким образом, чтобы задача не выполнялась автоматически, а только вручную, например, выбрав режим однократного запуска на уже прошедшую или будущую дату. Это позволит менять настройки задания и выполнять его в нужный момент времени вручную.

    На вкладке Действия в качестве действия выбираем Запуск программы в качестве которой будет выступать созданный ранее командный файл who-admin.bat, который нужно выбрать с использованием кнопки Обзор….

    Действия задачи для планировщика заданий Windows


    На вкладке Условия оставьте настройки по умолчанию. Изменения настроек можно выполнить для определения их влияния на поведение создаваемого задания позже.



    Условия задачи для планировщика заданий Windows


    На вкладке Параметры дополнительные параметры для задания также оставим для последующих экспериментов.

    Параметры задачи для планировщика заданий Windows




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

    Диагностика состояния заданий планировщика.

    В процессе настройки заданий можно столкнуться с несколькими типами проблем:

    - Задание не запускается;

    - Задание не завершается;

    - Задание завершается с ошибкой;

    Для определения статуса задания, выберите требуемое задание в Планировщике заданий и просмотрите сведения, такие как состояние, время прошлого запуска, результат последнего запуска и т. п. Состояния:

    Отключено (Disabled) означает, что задание существует, но его выполнение запрещено настройками триггера.

    Поставлено в очередь (Queued) означает, что задание ожидает выполнения в запланированное время.

    Готово означает, что задание готово к следующему выполнению.

    Также, отображается время следующего запуска, время прошлого запуска, результат выполнения, автор задания и дата его создания.

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

    Состояние Работает, может в действительности означать, что задание зависло, ожидает ввод пользовательских данных, или, например, из-за ошибок программирования, ушло на бесконечный цикл. Узнать, действительно ли задание зависло, можно, проверив столбец Время прошлого запуска, в котором указано время запуска задания. Если задание выполняется более суток, то, за редким исключением, это не нормально. Чтобы остановить задание, щелкните на нем правой кнопкой мышки и в контекстном меню выберите команду Завершить. Для заданий, время выполнения которых известно, можно установить предельное время выполнения в Свойства-Параметры-Остановить задачу, выполняемую дольше:. В случае превышения отведенного на выполнение времени, задание будет принудительно завершено планировщиком.

    Имея тестовое задание, попробуйте установить скрытый режим его выполнения ("Скрытая задача"), выполнить с правами администратора ("Выполнить с наивысшими правами"), перенести его на другой компьютер, используя режим экспорта и импорта. Полезно будет поэкспериментировать над условиями и параметрами задания, например, добавив в командный файл команду pause при выполнении в скрытом режиме, и тем самым вызвав имитацию зависания задания. Желательно также отработать вариант выполнения просроченного задания, когда запланированное время соответствует выключенному состоянию компьютера, и включен параметр "Немедленно запускать задачу, если пропущен плановый запуск".

    Перечень некоторых стандартных заданий Windows 7,8:

    Application Experience\AitAgent - Сбор и передача данных дистанционного отслеживания приложений (при явном согласии участвовать в программе улучшения качества программного обеспечения). Даже если время выполнения установлено на 2-3 часа ночи, в настройках присутствует признак выполнения просроченного задания и передача данных в Microsoft выполняется.

    Application Experience\ProgramDataUpdater - Сбор телеметрических данных программы при участии в программе улучшения качества ПО

    Autochk\Proxy - собирает и загружает данные SQM (при участии в программе улучшения качества программного обеспечения).

    Customer Experience Improvement Program\BthSQM - Задача программы улучшения качества Bluetooth собирает статистику по Bluetooth, а также сведения о вашем компьютере, и отправляет их в корпорацию Майкрософт. Полученные сведения используются для повышения надежности, стабильности и общей функциональности Bluetooth в Windows. При отсутствии согласия пользователя на участие в программе улучшения программного обеспечения Windows эта задача не выполняет никаких действий. Задача присутствует в Windows 8.

    Customer Experience Improvement Program\Consolidator При выполнении задачи программы улучшения качества ПО, выполняющейся в режиме ядра (Kernel CEIP), осуществляется сбор дополнительных данных о системе, которые затем передаются в корпорацию Майкрософт. Если пользователь не дал своего согласия на участие в данной программе, то эта задача не выполняет никаких действий.

    Customer Experience Improvement Program\UsbCeip - При выполнении задачи программы улучшения качества ПО шины USB (USB CEIP) осуществляется сбор статистических данных об использовании универсальной последовательной шины USB и сведений о компьютере, которые направляются инженерной группе Майкрософт по вопросам подключения устройств в Windows. Полученные сведения используются для повышения надежности, стабильности и общей производительности шины USB в Windows. При отсутствии согласия пользователя на участие в программе улучшения программного обеспечения Windows задача не выполняет никаких действий.

    RAC\RacTask - Задача средства анализа стабильности системы, предназначенная для обработки данных о надежности компьютера.

    Одним из малоизвестных заданий является Registry\RegIdleBackup - Задание архивации реестра, выполняющееся раз в 10 дней и обеспечивающее сохранение файлов реестра в папке C:\Windows\System32\config\RegBack\. В некоторых случаях, когда нет точек восстановления или они некондиционны, есть шанс восстановить работоспособное состояние системы, загрузившись в другой ОС и скопировав файл(ы) реестра в каталог \Windows\System32\config\. Можно также использовать ручное выполнение данного задания для получения копии файлов реестра, нужных в данный момент времени.

    В Windows 8 присутствует папка \Microsoft\Windows\WS с несколькими задачами использующими обмен данными с магазином Windows.

    Это далеко не полный перечень системных заданий, присутствующих в библиотеке планировщика Windows 7 и Windows 8. Полезность многих из них сомнительна, и даже более того, отрицательная, поскольку может приводить к снижению времени работы ноутбуков от батарей, расходу недешевого мобильного трафика, дополнительных затрат электроэнергии, снижению реальной производительности и т.п. В заключение напомню, что отключение системных заданий требует осторожности и понимания того, что вы делаете, в противном случае, можно получить неработоспособную или частично работоспособную систему.

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

    Управление заданиями планировщика из командной строки CMD Windows.

    Для управления заданиями из командной строки Windows используется утилита schtasks.exe.Примеры использования:

    schtasks /Query - вывести список всех заданий;

    SCHTASKS /Run /I /TN "System Backup" - выполнить на локальном компьютере задание "System Backup" немедленно, игнорируя любые ограничения.

    SCHTASKS /end /TN "System Backup" - снять задачу "System Backup"

    schtasks /change /tn "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /disable - отключить задание \Microsoft\Windows\Application Experience\ProgramDataUpdater

    В заключение, приведу текст командного файла, позволяющего отключить или включить системные задания планировщика, полезность которых сомнительна. В комментариях, которые предшествуют команде schtasks представлено краткое описание задания, взятое из общих свойств задания, отображаемое в консоли управления. Для выполнения данного командного файла требуется запуск от имени администратора. Действие, выполняемое по отношению к заданиям планировщика определяется значением переменной task_action. Команда set task_action=disable приведет к отключению заданий, set task_action=enable - к включению. При выполнении команды schtasks, ее вывод сохраняется в файле журнала, имя которого соответствует имени командного файла, с расширением txt.

    @echo off
    Rem action - установка значение disable или enable 
    set task_action=disable
    REM Проверка наличия прав администратора
    @WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" > nul
    if %ERRORLEVEL% == 0 goto admin
    echo Execution aborted. Run this batch file AS Administrator  !!!
    pause
    exit
    :admin
    @echo try %task_action% scheduled tasks ...  
    
    rem Сбор и передача данных дистанционного отслеживания приложений (при явном согласии участвовать в
    rem программе улучшения качества программного обеспечения).
    schtasks /change /tn "\Microsoft\Windows\Application Experience\AitAgent" /%task_action% >> %~dn0.log
    
    rem Сбор телеметрических данных программы при участии в программе улучшения качества ПО 
    schtasks /change /tn "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /%task_action% >> %~dn0.log
    
    rem Эта задача собирает и загружает данные SQM при участии в программе улучшения качества 
    rem программного обеспечения.
    schtasks /change /tn "\Microsoft\Windows\Autochk\Proxy" /%task_action% >> %~dn0.log
    
    rem Если пользователь изъявил желание участвовать в программе по улучшению качества программного 
    rem обеспечения Windows, эта задача будет собирать и отправлять сведения о работе программного
    rem обеспечения в Майкрософт. 
    schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /%task_action% >> %~dn0.log
    
    rem При выполнении задачи программы улучшения качества ПО, выполняющейся в режиме ядра (Kernel 
    rem CEIP), осуществляется сбор дополнительных данных о системе, которые затем передаются в 
    rem корпорацию Майкрософт. Если пользователь не дал своего согласия на участие в данной программе,
    rem то эта задача не выполняет никаких действий.
    schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /%task_action% >> %~dn0.log
    
    rem При выполнении задачи программы улучшения качества ПО шины USB (USB CEIP) осуществляется сбор
    rem статистических данных об использовании универсальной последовательной шины USB и сведений о
    rem компьютере, которые направляются инженерной группе Майкрософт по вопросам подключения устройств
    rem в Windows. Полученные сведения используются для повышения надежности, стабильности и общей 
    rem производительности шины USB в Windows. При отсутствии согласия пользователя на участие в
    rem программе улучшения программного обеспечения Windows задача не выполняет никаких действий.
    schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /%task_action% >> %~dn0.log
    
    rem Эта задача выполняет дефрагментацию жестких дисков компьютера.
    schtasks /change /tn "\Microsoft\Windows\Defrag\ScheduledDefrag" /%task_action% >> %~dn0.log
    
    rem Измеряет быстродействие и возможности системы
    schtasks /change /tn "\Microsoft\Windows\Maintenance\WinSAT" /%task_action% >> %~dn0.log
    
    REM Запуск приложений, настроенных для Windows HotStart
    schtasks /change /tn "\Microsoft\Windows\MobilePC\HotStart" /%task_action% >> %~dn0.log
    
    rem Это задание предназначено для анализа состояния системы и поиска условий, которые могут привести
    rem к повышенному энергопотреблению.
    schtasks /change /tn "\Microsoft\Windows\Power Efficiency Diagnostics\AnalyzeSystem" /%task_action% >> %~dn0.log
    
    rem Задача средства анализа стабильности системы, предназначенная для обработки данных о надежности
    rem компьютера.
    schtasks /change /tn "\Microsoft\Windows\RAC\RacTask" /%task_action% >> %~dn0.log
    
    REM (Windows Live Social Object Extractor Engine) After installing Windows Live Essentials 2011, 
    REM it creates a task called "Extractor Definitions Update Task". The purpose of this task is to 
    REM update the definition file for the Windows Live Social Object Extractor Engine. The task 
    REM can be found under, Task Scheduler Library\Microsoft\Windows Live\SOXE. - 
    REM Read more at http://www.shouldiremoveit.com/windows-live-soxe-5304-program.aspx
    schtasks /change /tn "\Microsoft\Windows Live\SOXE\Extractor Definitions Update Task" /%task_action% >> %~dn0.log
    
    rem Эта запланированная задача предназначена для уведомления пользователя о том, что архивация
    rem Windows не настроена.
    schtasks /change /tn "\Microsoft\Windows\WindowsBackup\ConfigNotification" /%task_action% >> %~dn0.log
    
    Учтите, что отключение системных заданий - небезопасная операция, и ее последствия целиком на вашей совести. Так, например, командный файл отключает задание на дефрагментацию файлов, которое не имеет смысла при использовании SSD-диска, но может быть полезным при использовании механических HDD. Кроме того, если вы посмотрите действия, выполняемые заданием дефрагментации, то увидите, что выполняется запуск программы %windir%\system32\defrag.exe –c, где -c - параметр, задающий выполнение дефрагментации на всех дисках. Может быть, имеет смысл создать несколько заданий с разными триггерами для разных дисков, исключив SSD. Можно также изменить парвметры существующей задачи, исключив дефрагментацию SSD - дисков:

    defrag /E C: - выполнить дефрагментацию на всех локальных дисках, кроме диска C:

    Хотя, правильнее, если пользователь выполняет дефрагментацию самостоятельно, по мере возникновения необходимости и для тех дисков, которые в ней нуждаются.

    Подробному описанию schtasks отведена отдельная страница в разделе Список команд CMD Windows.

    Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой "Поделиться"











    В начало страницы     |     На главную страницу