«Планировщик заданий» в Windows: как включить или отключить

Работа операционной системы Windows — это совокупность сложных процессов, о которых большинство пользователей понятия не имеют. Так, к примеру, весь процесс эксплуатации системы сопровождается периодическим выполнением регламентированных задач, которые обслуживают систему в автоматическом режиме, без ведома и вмешательства пользователя. К таким процессам относится проверка наличия обновлений, создание резервных копий критически необходимых файлов, выполнение процедуры администрирования и многие другие.

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

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

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

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

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

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

Какие бывают планируемые задания?

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

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

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

В PowerShell

Команда удаление задания выглядит так:

Если задание располагается не в корне, в команду добавляется строка -TaskPath «путь-к-папке», путь указывается относительный, обратные слеши справа и слева удалять не нужно, смотрите скриншот ниже.

Свойства заданий

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

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

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

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

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

Параметры и настройки для запланированных заданий находятся в разделе реестра. Их можно найти по этому пути: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule.

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

Как в нем работать

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

Также для удобства можно вывести все текущие задачи на экран. Это позволит сориентироваться среди множества выполняемых процессов. Для этого следует щелкнуть ПКМ по вкладке «Планировщик заданий» в левой части экрана и выбрать пункт «Отображать все выполняемые задачи». Затем они появятся правее от дерева папок.

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

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

Управление заданиями на ОС Windows происходит благодаря специальной оснастке консоли управления Майкрософт — mmc.exe. Для того, чтобы ее запустить заходим в панель управления, находим пункт «Администрирование”, далее «Управление компьютером” и выбираем «Планировщик заданий”. Или же вызываем утилиту «выполнить” комбинацией клавиш «win+r” и прописываем команду «taskschd.msc”.

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

В середине окна вы видите информацию, которая касается состояния этих заданий и их свойств.

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

Для того, чтобы начать работу с заданиями удаленного компьютера, кликаем правой кнопкой мыши по пункту в верхней части окна «Планировщик заданий (локальный)” и выбираем в меню «подключится к другому компьютеру”. В окне, которое откроется следующим, необходимо будет установить переключатель «другой компьютер” и ввести имя или IP-адрес нужного вам ПК или ноутбука.

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

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

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

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

  • Удалить (Delete) — полностью удалить задание;
  • Отключить (Disable) — временно отключить задание;
  • Свойства (Properties) — позволяет просмотреть или отредактировать свойство задания;
  • Экспортировать (Export) — экспортировать задание в файл, данные из которого можно импортировать на другом компьютере. Операционные системы Windows 8 и Windows Server 2012 имеют такую же архитектуру заданий, как и Windows 7 и Windows Server 2008 R2, но архитектура заданий более ранних версий операционных систем Windows имеет другую структуру. При экспорте заданий можно указать операционную систему, с которой это задание допустимо использовать, с помощью параметра «Настроить для» (Configure for) на вкладке «Общие» окна свойств задания.
  • Выполнить (Run) — делает запуск задания;
  • Завершить (End) — если работа задания выполняется, его можно завершить.

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

Как запустить планировщик заданий с помощью диалогового окна «Выполнить»

Во всех версиях ОС от Microsoft этот способ будет одинаковым:

  1. Нажмите клавиши Win+R на клавиатуре (где Win — клавиша с эмблемой ОС), откроется диалоговое окно «Выполнить».
  2. Введите в него taskschd.msc и нажмите Enter — запустится планировщик заданий.

Эту же команду можно ввести и в командной строке или PowerShell — результат будет аналогичным.

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

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

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

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

После того, как командный файл будет выполнен, на экране появится сообщение «Задача выполняется с правами администратора” или «Задача выполняется с правами пользователя (имя)”. У нас командный файл будет иметь имя «who-admin.bat”. Если вы захотите, то сможете сменить используемые команды и принцип определения привилегий. Список вышеупомянутых вы сможете легко найти в интернете.

К примеру, содержимое файла, которому мы дали название «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”. Также можно использовать онлайн-сервис, типа универсального декодера-конвертора кириллицы.

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

Для того, чтобы создать новую задачу, нужно сделать следующее:

Используем пункт меню «действие” и в нем находим «создать задачу”.

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

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

Переходим во вкладку «Твиггеры”. Здесь вам необходимо нажать кнопку «создать”. Открываем окно «Создание твиггера” и задаем условия, при возникновении которого будет выполняться создаваемая задача.

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

Переходим во вкладку «действия”. Первым делом в «действиях” выбираем «запуск программы”. В качестве программы мы будем использовать недавно созданный файл с именем «who-admin.bat”. Чтобы его вставить, необходимо нажать на кнопку «Обзор” и выбрать наш файл.

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

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

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

Как пользоваться планировщиком Windows 10 – инструкция и рекомендации

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

Создаём простую задачу

Начните с автоматического создания задачи (“создать простую задачу”), чтобы наглядно увидеть алгоритм в нескольких простых шагах. После нажатия появится окно, где вам будет предложено назвать процесс и добавить какое-либо описание. Это опционально и существует только для вашего удобства – чтобы вы не запутались в большом количестве задач.

Выбор и установка триггеров

Теперь необходимо наладить автоматическую работу программы, которая фигурирует в задаче, под свои нужды, с помощью триггеров. Триггеры — это определённые действия или обстоятельства, которые будут запускать процесс выполнения задачи. Это может быть определённое время (планировщик будет ориентироваться на дату и время в системе), включение ПК и т.д. В настройках по времени вы можете выбрать конкретные дату и часы.

Индивидуальные пользовательские настройки

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

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

Расширенный режим или создаём задачу вручную

Автоматизированный процесс работы с новыми задачами очень простой, но недостаточно гибкий для опытного пользователя с большими запросами. Если вам недостаточно стандартного функционала, воспользуйтесь расширенным режимом, где большинство настроек придётся выстраивать вручную. Рассмотрим несколько основных отличий данного режима для продвинутых пользователей =>

Активация процессов на нескольких триггерах

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

Более сложные задачи

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

Автономная работа

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

Чтобы создать задачу, заходим в «Планировщик заданий» нажав Win+R и вводим taskschd.msc.

Выбираем «Создать простую задачу». Пишем имя и можно добавить описание.

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

Выбираем «Запустить программу» Выставляем в поле программа или сценарий shutdown.

Проверяем всё ли верно и нажимаем Готово.

Диагностика заданий

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

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

Состояния бывают следующих типов:

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

Поставлено на очередь. Это состояние задания говорит о том, что оно стоит в очереди на выполнение.

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

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

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

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

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

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

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

Также для вас будет полезно попробовать изменить условия и параметры задания. К примеру, добавьте в условия командного файла команду «pause”, когда команда выполняется в скрытом режиме. Таким образом у вас получится симулировать зависшее задание. Хорошим опытом для вас будет попробовать выполнить просроченное задание. При этом должны быть такие условия: на время проведения задания, компьютер должен быть выключен, но при этом задать параметр заданию «немедленно запускать задачу, если пропущен плановый запуск”.

Панель управления

В разделе «Обслуживание» центра поддержки Windows появился новый компонент – автоматическое обслуживание.

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

).

Время запуска, бездействие и использование ресурсов ПК

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

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

Работая в Windows, вы могли заметить по звуку и индикаторам корпуса ПК, что оставленная без присмотра система иногда демонстрирует повышенную активность процессора и диска. Но стоит вернуться к работе в системе, как эта активность немедленно идет на спад и затем прекращается. Это и есть фоновое обслуживание!

Пробуждение ПК

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

  1. Пробуждение подразумевает выход из сна, но не выход из гибернации или включение ранее выключенного ПК. Разбудив систему и выполнив обслуживание, Windows отправляет ПК обратно в сон.
  2. Автоматическое обслуживание учитывает различия в политике электропитания для мобильных и стационарных ПК, исходные настройки которых отличаются. Например, одной из них является пробуждение по таймеру для выполнения запланированных задач (снимок экрана сделан на ноутбуке).

    Именно по этой причине на мобильных системах флажок пробуждения для обслуживания изначально снят, а на стационарных – установлен.

  3. Если у вас мощный компьютер, который любит пошуметь вентиляторами и посветить корпусом, лучше изменить стандартное время запуска задачи. Иначе ПК может вас разбудить в три часа ночи.

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

Стандартные задания в операционках Windows 7 и 8

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

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

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

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

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

Задание Customer Experience Improvement Program\Consolidator. Данная задача направлена на улучшение качества программного обеспечения, которая выполняется в режиме ядра «Kernel Ceip”. Это возможно благодаря сбору дополнительных данных о системе, которые передаются в корпорацию Microsoft. Также, как и в предыдущем варианте, вы можете не давать согласие на выполнение этого задания. В этом случае, никаких действий выполнятся не будет.

Задание Customer Experience Improvement Program\UsbCeip. Эта задача также направлена на улучшения качества работы программного обеспечения шины USB. Также, как и в предыдущих вариантах, осуществляется сбор данных, после анализа работы универсальной последовательной шины USB и информации о компьютере. После получения всех данных, пакет с файлами также отправляется в компанию разработчик, для анализа и улучшения работы устройства. Вы также можете быть не согласны с этим заданием и в этом случае оно также не будет запускаться.

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

Мало кто знает, даже из опытных пользователей, о таком задании как «Registry\RegIdleBackup”. Это задание занимается архивацией реестра. Выполняется оно раз в 10 дней и сохраняет всю отчетность файлов реестра в папке «C:\Windows\System32\config\RegBack\”.

Если на вашем компьютере не выставлены точки восстановления или они не подходят для использования, у вас появляется возможность восстановить работоспособность системы, если вы загрузитесь с другой операционной системы и скопируете файлы реестра в каталог с названием «\Windows\System32\config\”.

В восьмерке имеется специальная папка, которую вы сможете найти в «\Microsoft\Windows\WS”. В ней имеются несколько задач, которые занимаются обменом данных с магазином Windows.

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

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

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

Какие задачи выполняются для обслуживания системы

Можно выполнить обслуживание вручную из панели управления или командой MSchedExe.exe Start и посмотреть, что при этом происходит. Для полного счастья откройте сначала диспетчер задач, а заодно монитор ресурсов на вкладке «Диск».

Так, я первым делом увидел процессорную активность процесса MsMpEng.exe. Открыв Windows Defender, я убедился в том, что выполняется быстрое сканирование встроенным антивирусом. Одновременно начал мигать индикатор внешнего диска, а монитор ресурсов указал на активность в папке с изображениями. Мое предположение о том, что это дело рук истории файлов, быстро подтвердилось фильтром Process Monitor.

В любом случае вы увидите потребление ресурсов CPU процессом system

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

  • Автоматическое создание резервной копии реестра
  • Передача данных об использовании системы в рамках программы CEIP
  • Отправка отчетов о неполадках
  • Оптимизация и дефрагментация дисков
  • Обновление поискового индекса
  • Оптимизация загрузки системы
  • Создание точки восстановления системы

Я сознательно не стал перечислять все задачи, поскольку вы можете выяснить их список самостоятельно! Для этого пробегитесь по папкам планировщика в разделе Windows

, обращая внимание на время последнего запуска задания.

Если задание выполнялось вскорости после запуска Manual Maintenance

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

Впрочем, все эти задачи вовсе необязательно выполняются в полном объеме. Если вы не участвуете в CEIP или отсутствуют новые отчеты о неполадках, то и отправлять нечего. Точно так же, если точку восстановления создавать не нужно, она не и не будет создаваться.

Изменение поведения планировщика

Теперь мы вооружены знаниями о том, как на уровне кодов происходит смена потока в Windows. Но как заставить планировщик работать в соответствии с поставленной задачей? Т.е., во-первых, сделать квант «бесконечным» на время работы заданного потока, а во-вторых, не допустить, чтобы диспетчер баланса поднял приоритет давно ждущих потоков выше приоритета заданного потока.

Для этого требуется внести исправление в само ядро. Это не так уж и сложно. Конечно, потребуется позаботиться о пересчете контрольной суммы с помощью процедуры CheckSumMappedFile и тому подобных мелочах, но это не является серьезным препятствием. Самое главное – организовать удобный интерфейс задачи пользователя с ядром. Напоминаем, что это делается для единственного компьютера.

Была выбрана схема, при которой запущенный поток сам периодически сообщает ядру о своей «избранности». При получении этого сообщения ядро продлевает квант выполнения и ограничивает подъем приоритетов диспетчером баланса не выше заданного. Как только (минут через 20-30) поток завершается, он перестает давать сообщения ядру. Поэтому ОС опять начинает выполнять фрагмент кода по исчерпанию кванта (для других потоков). В этом месте будет срабатывать возврат диспетчера баланса в нормальный режим работы. Таким образом, после завершения нужного потока ядро автоматически возвращается в обычный режим работы.

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

555390 E8 CE DC EA FF C9 C2 04-00 90 2A 2A 2A 2A 2A 2A ..Р****** 5553A0 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 5553B0 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 5553C0 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 5553D0 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 5553E0 2A 2A 2A 2A 2A 2A 2A 2A-2A 0A 2A 0A 2A 20 54 68 *********.*.* Th 5553F0 69 73 20 69 73 20 74 68-65 20 73 74 72 69 6E 67 is is the string 555400 20 79 6F 75 20 61 64 64-20 74 6F 20 79 6F 75 72 you add to your 555410 20 63 68 65 63 6B 69 6E-20 64 65 73 63 72 69 70 checkin descrip 555420 74 69 6F 6E 0A 2A 20 44-72 69 76 65 72 20 56 65 tion.* Driver Ve 555430 72 69 66 69 65 72 3A 20-45 6E 61 62 6C 65 64 20 rifier: Enabled 555440 66 6F 72 20 25 5A 20 6F-6E 20 42 75 69 6C 64 20 for %Z on Build 555450 25 6C 64 20 25 77 5A 0A-2A 0A 2A 2A 2A 2A 2A 2A %ld %wZ.*.****** 555460 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 555470 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 555480 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 555490 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A **************** 5554A0 2A 2A 2A 2A 2A 2A 2A 2A-2A 0A 00 CC CC CC CC CC *********..

Передача сообщения ядру происходит с помощью выполнения привилегированной команды, на которую сработает исключение INT 0D «нарушение общей защиты». При этом предварительно в одном из регистров пишется специальное значение, которое и позволит ядру отличить этот случай от всех остальных. Кстати, само ядро тоже пользуется похожим приемом, например, в интерфейсе запроса времени INT 2A в регистре EBP можно записать специальные значения F0F0F0F0 или F0F0F0F1, которые заставят ядро реагировать на INT 2A по-разному.

Для начала команды обработчика исключения INT 0D в ядре по адресу 409150 можно немного «уплотнить» и добавить вызов новой подпрограммы (размещенной по адресу 5553A0 на месте текста), не двигая остальной код обработчика:

;—- ИСХОДНЫЙ ОБРАБОТЧИК ИСКЛЮЧЕНИЯ «ОБЩЕЕ НАРУШЕНИЕ ЗАЩИТЫ» —- 409150 F744240C00000200 TEST D PTR [ESP]+0C,00020000 409158 0F843A010000 JJE 409298 40915E 83EC64 SUB ESP,0064 409161 66C74424660000 MOV W PTR [ESP]+66,0000 409168 895C245C MOV [ESP]+005C,EBX 40916C 89442444 MOV [ESP]+0044,EAX … ;—- ДОРАБОТАННЫЙ ОБРАБОТЧИК ИСКЛЮЧЕНИЯ «ОБЩЕЕ НАРУШЕНИЕ ЗАЩИТЫ» —- 409150 E84BC21400 CALL 5553A0 ; ВСТАВЛЕННЫЙ ВЫЗОВ ОБРАБОТКИ 409155 F644240E02 TEST B PTR [ESP]+000E,02 40915A 0F8438010000 JJE 409298 409160 83EC64 SUB ESP,0064 409163 895C245C MOV [ESP]+005C,EBX 409167 89442444 MOV [ESP]+0044,EAX 40916B 33C0 XOR EAX,EAX 40916D 6689442466 MOV [ESP]+0066,AX …

Как видите, при необходимости даже оптимизированный код можно «ужать» и вставить дополнительные команды.

А на место диагностического текста помещаются основные команды исправления ядра:

;—- ПРОВЕРКА СИГНАТУРЫ —- 5553A0 81FE44445555 CMP ESI,55554444 5553A6 7401 JZ 5553A9 5553A8 C3 RET ;—- ОБРАБОТКА СООБЩЕНИЯ — 5553A9 1E PUSH DS 5553AA 0FA0 PUSH FS 5553AC 66BB3000 MOV BX,0030 5553B0 66B82300 MOV AX,0023 5553B4 8EE3 MOV FS,BX 5553B6 8ED8 MOV DS,AX ;—- ПРОДЛЕВАЕМ КВАНТ РАБОТЫ ТЕКУЩЕГО ПОТОКА —- 5553B8 64A124010000 FS: MOV EAX,[00000124] 5553BE C6406F7F MOV B PTR [EAX]+006F,7F ;—- ЗАДАЕМ МАКСИМАЛЬНЫЙ ПРИОРИТЕТ ДЛЯ ДИСПЕТЧЕРА БАЛАНСА —- 5553C2 8A4833 MOV CL,[EAX]+0033 5553C5 E800000000 CALL 5553CA 5553CA 5B POP EBX 5553CB 884B3A MOV [EBX]+003A,CL 5553CE 0FA1 POP FS 5553D0 1F POP DS ;—- ВОЗВРАЩАЕМСЯ ИЗ ИСКЛЮЧЕНИЯ В ЗАДАЧУ —- 5553D1 FF442408 INC D PTR [ESP]+0008 5553D5 FF442408 INC D PTR [ESP]+0008 5553D9 83C408 ADD ESP,0008 5553DC CF IRET

Дополнительный обработчик исключения проверяет сигнатуру ESI=55554444 и выполняет следующие действия:

— устанавливает максимальное значение счетчика 127 для текущего потока;

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

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

По сути, Windows вообще не «чувствует» такое исключение, поскольку управление сразу же возвращается в задачу, минуя обычные пути обработки исключений. В программе достаточно хотя бы раз в 2-3 секунды давать исключение с таким значением в ESI и тогда внутренний счетчик потока по адресу 6F никогда не достигнет нуля. А значит, переменная 9AC продолжает оставаться нулевой и Windows не ищет замену текущему потоку.

Остается поправить диспетчер баланса. В него добавляются команды, проверяющие приоритет ждущего потока. Если приоритет ниже, диспетчер действует так, как будто поток еще не «старый»:

… 410348 8D4EA0 LEA ECX,[ESI]+FFA0 41034B 3B4168 CMP EAX,[ECX]+0068 41034E E998501400 JMP 5553FB 410353 90 NOP … ;—- УЧЕТ НУЖНОГО ПРИОРИТЕТА В ДИСПЕТЧЕРЕ БАЛАНСА —- 5553FB 0F8653AFEBFF JJB 410354 555401 80793310 CMP B PTR [ECX]+0033,10 555405 0F8549AFEBFF JJBE 410354 55540B E92904EFFF JMP 445839

Первоначально приоритет сравнивается с константой 16, которой у проверяемых потоков не может быть, и поэтому проверка никак не влияет на обычную работу диспетчера. Но когда начинают приходить сообщения от «избранного» потока, константа 16 прямо в команде проверки заменяется значением приоритета заданного потока. Теперь всем более низкоприоритетным потокам диспетчер уже не пытается поставить приоритет 15.

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

… 40592A E890C10000 CALL 411ABF 40592F E9986D0400 JMP 5553DE … ;—- ВОССТАНАВЛИВАЕМ ОБЫЧНЫЙ РЕЖИМ ДИСПЕТЧЕРА БАЛАНСА —- 5553DE 50 PUSH EAX 5553DF E800000000 CALL 5553E4 5553E4 58 POP EAX 5553E5 C6402010 MOV B PTR [EAX]+0020,10 5553E9 58 POP EAX 5553EA 0BC0 OR EAX,EAX 5553EC 0F85EF04EBFF JJNE 4058D1 5553F2 C3 RET

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

Зачем это нужно Microsoft

Продажи настольных компьютеров неуклонно снижаются, уступая место мобильным системам, и продолжение этого тренда дружно прогнозируют все аналитические агентства. Так, компания Forester Research считает, что в ближайшие три года и без того невысокая доля продаж настольных ПК дополнительно снизится за счет роста популярности планшетов, составив в итоге всего 18%.

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

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

Введение

Эта статья рассказывает о возможностях стандартного Планировщика Windows. На примерах показано как запланировать запуск той или иной программы в определенное время. Рассказано о том, как правильно составить расписание запуска программы в определенные дни, в определенное время.

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

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

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями: