Начиная с Windows Vista, планировщик заданий играет очень важную роль в обслуживании и оптимизации операционной системы. Сегодня я расскажу о нововведениях в автоматическом обслуживании Windows 8 и объясню, с чем они связаны.
В свое время я подробно разбирал задания, встроенные в планировщик Windows Vista, делая акцент на том, имеет ли хоть какой-то смысл их отключать. На поверку выяснилось, что таковых крайне мало. Меня не раз просили в почте сделать такой же обзор планировщика Windows 7, но я не видел в этом резона. Ведь единственным изменением было увеличившееся количество заданий по обслуживанию системы.
Однако с выходом Windows 8 появился повод вернуться к этой теме, тем более что элементы автоматического обслуживания системы появились даже в панели управления.
[+] Сегодня в программе
- Панель управления
- Время запуска, бездействие и использование ресурсов ПК
- Пробуждение ПК
- Создание XML-файла
- Импорт задания в планировщик и проверка его работы
Панель управления
В разделе «Обслуживание» центра поддержки Windows появился новый компонент – автоматическое обслуживание.
Не спешите запускать обслуживание вручную, мы к этому еще придем. Давайте сначала посмотрим на его нехитрые настройки (их также можно найти в панели управления по запросу обслуживание
).
Время запуска, бездействие и использование ресурсов ПК
Из подробного описания видно, что время запуска обслуживания можно не изменять. Оно все равно произойдет в подходящий момент, когда система перейдет в режим бездействия. Однако описание в панели управления умалчивает о том, что если вы начнете взаимодействовать с системой во время ее обслуживания, оно немедленно прекратится. И это логично, поскольку фоновые задачи могут сопровождаться интенсивной нагрузкой на диск и процессор, тем самым мешая вашей работе.
Автоматическое обслуживание Windows выполняется в режиме максимальной производительности с использованием всех системных ресурсов, чтобы завершить его как можно быстрее.
Работая в Windows, вы могли заметить по звуку и индикаторам корпуса ПК, что оставленная без присмотра система иногда демонстрирует повышенную активность процессора и диска. Но стоит вернуться к работе в системе, как эта активность немедленно идет на спад и затем прекращается. Это и есть фоновое обслуживание!
Пробуждение ПК
На параметре пробуждения системы я остановлюсь подробнее, чтобы разъяснить несколько моментов.
- Пробуждение подразумевает выход из сна, но не выход из гибернации или включение ранее выключенного ПК. Разбудив систему и выполнив обслуживание, Windows отправляет ПК обратно в сон.
- Автоматическое обслуживание учитывает различия в политике электропитания для мобильных и стационарных ПК, исходные настройки которых отличаются. Например, одной из них является пробуждение по таймеру для выполнения запланированных задач (снимок экрана сделан на ноутбуке).
Именно по этой причине на мобильных системах флажок пробуждения для обслуживания изначально снят, а на стационарных – установлен. - Если у вас мощный компьютер, который любит пошуметь вентиляторами и посветить корпусом, лучше изменить стандартное время запуска задачи. Иначе ПК может вас разбудить в три часа ночи.
Выполнение автоматического обслуживания Windows, как и прежде, осуществляется с помощью планировщика, однако теперь там появилась новая группа заданий для этой цели.
Изменение поведения планировщика
Теперь мы вооружены знаниями о том, как на уровне кодов происходит смена потока в 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
Все перечисленные вставки кодов записаны непрерывно на месте диагностического текста и разделены здесь лишь для более наглядного пояснения их работы.
Запланированные задания
В Windows 8/8.1 найдите в программах планировщик
и перейдите в раздел Библиотека планировщика заданий — Microsoft — Windows –
TaskScheduler.
В Windows 10 эти задания спрятаны из планировщика, чтобы люди не мешали обслуживанию ОС, отключая задания. Однако все они есть в реестре, поэтому особо талантливые пользователи смогут воспрепятствовать обслуживанию при желании.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\TaskScheduler
Внизу списка вы видите то самое задание Regular Maintenance
, время
ежедневного
запуска которого можно настроить в панели управления. Обратите внимание, что в планировщике вы можете изменить расписание запуска, например, на еженедельное. Однако делать это вовсе необязательно, ибо в итоге все упирается в бездействие ПК.
Если вы запустите задание Manual Maintenance
, система выполнит тот же самый набор задач по обслуживанию, что и при запуске задания по расписанию. Отличие в том, что ваше взаимодействие с системой не прервет процесс оптимизации, поскольку вы сами запустили его.
Отключенное задание Idle Maintenance
любопытно тем, что система сама включает его при выполнении ручного или автоматического обслуживания. Однако других подробностей о нем мне выяснить не удалось.
Задание Maintenance Configurator
, судя по нескольким триггерам, определяет список задач, обслуживающих систему.
Создание простой задачи
Теперь давайте посмотрим, как создать простую задачу в планировщике заданий. Это самый легкий способ для начинающих пользователей, который не требует особенных навыков. Итак, выбираем пункт «Создать простую задачу».
На первом экране вам потребуется ввести имя задачи и, при желании, ее описание.
Следующий пункт — выбрать, когда будет выполняться задание: можно выполнять ее по времени, при входе в Windows или включении компьютера, или же по возникновению какого-либо события в системе. При выборе одного из пунктов, вам также предложат задать время выполнения и другие детали.
И последний этап, выбрать, какое именно действие будет выполняться — запуск программы (к ней можно добавить аргументы), вывод сообщения или отправка сообщения электронной почты.
Какие задачи выполняются для обслуживания системы
Можно выполнить обслуживание вручную из панели управления или командой MSchedExe.exe Start и посмотреть, что при этом происходит. Для полного счастья откройте сначала диспетчер задач, а заодно монитор ресурсов на вкладке «Диск».
Так, я первым делом увидел процессорную активность процесса MsMpEng.exe. Открыв Windows Defender, я убедился в том, что выполняется быстрое сканирование встроенным антивирусом. Одновременно начал мигать индикатор внешнего диска, а монитор ресурсов указал на активность в папке с изображениями. Мое предположение о том, что это дело рук истории файлов, быстро подтвердилось фильтром Process Monitor.
В любом случае вы увидите потребление ресурсов CPU процессом system
, поскольку обслуживание выполняется от имени системы. В частности, в обслуживание входят еще такие задачи:
- Автоматическое создание резервной копии реестра
- Передача данных об использовании системы в рамках программы CEIP
- Отправка отчетов о неполадках
- Оптимизация и дефрагментация дисков
- Обновление поискового индекса
- Оптимизация загрузки системы
- Создание точки восстановления системы
Я сознательно не стал перечислять все задачи, поскольку вы можете выяснить их список самостоятельно! Для этого пробегитесь по папкам планировщика в разделе Windows
, обращая внимание на время последнего запуска задания.
Если задание выполнялось вскорости после запуска Manual Maintenance
, оно входит в общий список задач по обслуживанию. На рисунке выше видно несколько заданий планировщика, которые система выполнила сразу после запуска единого задания обслуживания.
Впрочем, все эти задачи вовсе необязательно выполняются в полном объеме. Если вы не участвуете в CEIP или отсутствуют новые отчеты о неполадках, то и отправлять нечего. Точно так же, если точку восстановления создавать не нужно, она не и не будет создаваться.
Удаление задачи из Планировщика заданий
При необходимости, пользователь может удалить ставшую ненужной задачу.
- В главном окне Планировщика заданий в параметре «Активные задачи» найдите нужное задание.
- Выделите задачу, кликните два раза левой кнопкой мыши по заданию.
- В окне Планировщика откроется информация о выполняемой задаче.
- В разделе «Действия» нажмите на кнопку «Удалить».
В окне с предупреждением согласитесь на удаление задания.
В чем суть изменения в автоматическом обслуживании
Ключевое различие в автоматическом обслуживании Windows 7 и Windows 8+ в оптимизации энергопотребления операционной системой!
Раньше многие задачи по обслуживанию действовали исключительно по своему расписанию и могли выполняться при работе от батареи, а теперь они привязаны к единой задаче, которая запускается в период бездействия только при питании от сети и выполняется как можно быстрее.
Это не означает, что все задания планировщика теперь выполняются только в рамках автоматического обслуживания, поскольку у них может быть определено несколько триггеров. Например, точка восстановления системы обязательно создается при установке обновлений и драйверов. Однако отсутствие триггера в задании указывает на то, что оно выполняется исключительно в рамках автоматического обслуживания.
Рисунок выше иллюстрирует одно и то же задание по резервному копированию реестра, рассказ доктора Ватсона о котором выручил немало людей, потерявших надежду на восстановление системы.
В PowerShell
Аналогичным целям может служить и консоль PowerShell, в которой предусмотрен ряд командлетов, предназначенных как раз для взаимодействия с запланированными в taskschd.msc задачами.
Команда удаление задания выглядит так:
Unregister-ScheduledTask -TaskName «имя-задачи» -Confirm:$false
Если задание располагается не в корне, в команду добавляется строка -TaskPath «путь-к-папке», путь указывается относительный, обратные слеши справа и слева удалять не нужно, смотрите скриншот ниже.
Зачем это нужно Microsoft
Продажи настольных компьютеров неуклонно снижаются, уступая место мобильным системам, и продолжение этого тренда дружно прогнозируют все аналитические агентства. Так, компания Forester Research считает, что в ближайшие три года и без того невысокая доля продаж настольных ПК дополнительно снизится за счет роста популярности планшетов, составив в итоге всего 18%.
Очевидно, при таком раскладе длительность работы устройства от батареи выходит на первый план, и эффективность операционной системы в этом аспекте очень важна. Microsoft много говорила о том, что энергопотребление Windows 8 улучшено по сравнению с Windows 7, и консолидация фоновых задач по обслуживанию ОС – это один из важных шагов в этом направлении.
При этом Microsoft не ограничивается оптимизацией фоновых задач Windows, предоставляя разработчикам, ИТ-специалистам и конечным пользователям возможность добавить свое задание к автоматическому обслуживанию системы. Дальше я покажу, как вы можете это сделать без особых усилий.
Как управлять заданиями на локальных и удаленных системах?
Управление заданиями на ОС 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)”.
Создание своего задания, выполняющегося в рамках автоматического обслуживания
У вас есть какие-то задачи по обслуживанию Windows, выполнение которых возложено на планировщик или на сценарии входа в систему? Если они не являются интерактивными, возможно, имеет смысл перевести их в фоновый режим автоматического обслуживания. Примерами таких задач могут служить:
- очистка диска средствами системы
- удаление временных файлов скриптом по расписанию
- создание резервного образа системы утилитой recimg
Все задачи автоматического обслуживания выполняются в скрытом режиме. Например, окно командного файла появляться не будет.
Создание XML-файла
В графическом интерфейсе планировщика Windows не предусмотрена возможность включения своего задания в автоматическое обслуживание. Однако можно создать XML-файл, описывающий задание, и импортировать его в планировщик. В приведенном ниже примере файла вам нужно изменить лишь несколько параметров.
Пример XML-файла автоматического обслуживания
2011-09-01T19:35:38 Vadim LeastPrivilege NT AUTHORITY\SYSTEM IgnoreNew true true true false false P1D P7D true true false false false true false P3D 7 cmd /c echo %date% %time% >> «%windir%\temp\test.txt»
Файл содержит мои краткие комментарии, но ключевые моменты я опишу ниже.
Узел MaintenanceSettings
Начиная с Windows 8, в синтаксисе задания поддерживается узел MaintenanceSettings
, отвечающий за автоматическое обслуживание.
P1D P7D
Здесь два ключевых параметра.
Period
Это частота выполнения вашего задания в рамках регулярного автоматического обслуживания. Например, P1D
означает, что задание будет выполняться ежедневно, а
P30D
— раз в месяц.
Deadline
Это крайний срок выполнения задания. Например, P7D
означает, что задание должно выполняться никак не реже, чем раз в неделю.
Если задание ни разу не запускалось во время регулярного обслуживания, система выполнит его при первом же бездействии системы. Если же ПК используется в режиме, не позволяющем системе бездействовать, в дело вступает экстренное обслуживание. В этом случае пользователь получает сообщение о том, что оно выполняется, чтобы объяснить нагрузку на диск и процессор.
В рамках экстренного обслуживания выполняются все задачи, входящие в список автоматического обслуживания. Однако пропущенное задание всегда выполняется первым.
Дополнительные настройки
Если есть необходимость настроить дополнительные параметры запланированного задания, то щелкните правой кнопкой по созданному заданию в разделе «Библиотека планировщика заданий», находящейся в Планировщике заданий и выберите Свойства. Если дополнительные настройки будут меняться сразу после создания задания, то в последнем окне при создании задания (рисунок 11 в предыдущей главе) нужно поставить галочку у пункта «Открыть окно Свойства для этой задачи после нажатия кнопки Готово» и нажать Готово. Любая из этих последовательность действий приведет к тому, что откроется окно, пример которого показан на рисунке 12.
Рисунок 12.
Это окно содержит несколько вкладок с параметрами более тонкой настройки расписания запуска задачи. Все настройки, расположенные на них будут подробно рассмотрены ниже. На первой вкладке Задание, внешний вид которой показан на рисунке 12, находятся основные сведения о запланированной задаче. Это:
- Имя — Имя задания, под которым оно отображается в Планировщике задач.
- Размещение — Расположение задачи в древовидной структуре планировщика задач. В данном случае «\» обозначает, что задача расположена в корне древа.
- Автор — Имя пользователя, создавшего задачу.
- Описание — Текстовое описание задачи.
- При выполнении задачи использовать следующую учетную запись пользователя — Имя пользователя, под которым будет выполнятся задача.
- Выполнять только для пользователей, вошедших в систему — Если установить данный чекбокс, то данная задача будет выполнятся только при наличии залогиненного пользователя.
- Выполнять для всех пользователей — Данная задача будет выполнятся вне зависимости от наличия залогиненного пользователя.
- Выполнять с наивысшими правами — Для выполнения задачи будет предоставлены права администратора.
Внешний вид следующей вкладки «Триггеры» показан на рисунке 13.
Рисунок 13.
Эта вкладка предоставляет все возможности по управлению расписанием запуска запланированной задачи, которые значительно шире, чем те, которые была возможность настроить в мастере создания задач и о которых шла речь в предыдущей главе. На ней есть возможность создать как новый триггер для запуска, так и отредактировать уже имеющейся старый. Выбрав уже существующий триггер, и нажав кнопку «Изменить», откроются расширенные настройки триггера, которые можно увидеть на рисунке 14.
Рисунок 14.
Здесь можно наблюдать следующие пункты настроек:
- Начать задачу — Условие, при котором будет начинаться задача. Данная настройка уже рассматривалась в предыдущей главе.
- Параметры — Тип расписания запуска. Все типы были рассмотрены в предыдущей главе, поэтому останавливаться на них не будем.
- Отложить задачу на (произвольная задержка) — Позволяет включить задержку в выполнении задачи, без изменения её раписания запуска.
- Повторять задачу каждые … в течении … — С помощью данных настроек можно настроить повторение задачи в течении заданного интервала времени. Например, можно запускать задание каждые 30 минут в течение 8-ми часов или до определенного времени. Очень удобная возможность для решения определенных задач мониторинга событий. К примеру, иногда требуется проверять наличие в определенной папке файла с периодом в пять минут в течение рабочего дня и если он там появился, то запустить скрипт, который выполнит над файлом определенные действия.
- Остановить задачу через — Принудительно завершает запущенный Планировщиком задач процесс. Например, в поле Выполнять до указано время 18:00. Если задание очень большое и исполняется полчаса, то запуск его в 17:55 приведет к тому, что задание фактически будет работать до 18:25. Если такое положение дел нежелательно, то нужно поставить галку Остановить задание. В этом случае выполнение задания будет прекращено в 18:00 не смотря ни на что.
- Срок действия — Интервал дат, во время которого задача будет активна.
- Включено — Позволяет включить или выключить данный триггер.
Вкладка «Действия» показывает список задач, которые будут выполнятся при активации ранее расмотренных триггеров. Её внешний вид приведен на рисунке 15, расположенном ниже.
Рисунок 15.
На данной вкладке можно задать дополнительные действия, которые будут выполятся при активации задачи — в отличии от окна создания задачи, где можно было задать только одно единственное действие. При выборе создания или изменения действия появится уже окно с уже расмотренными ранее действиями по выборе запускаемой программы, по этому перейдем к следующей вкладке «Условия», которая показана на рисунке 16.
Рисунок 16.
Здесь содержатся дополнительные условия задачи, такие как:
- Запускать задачу при простое компьютера — Задача будет выполнятся только при «простое» компьютера, полезно для планирования запуска ресурсоемких задач, которые отнимают при своем выполнении все время процессора, загружая его на 100%.
- Запускать только при питании для электросети — Если устройство, на котором настроена эта задача, перейдет к питанию от аккамуляторов (например это ноутбук, или сервер с подключенным ИБП), то при этой включенной опции, задача не будет выполнятся.
- Пробуждать компьютер для выполнения задачи — При включении этой опции, Планировщик задач будет выводить компьютер из спящего режима для выполнения данной задачи.
- Запускать только при подключении к следующей сети — При активации этого параметра, и выборе нужного сетевого подключения, задача будет выполнятся только при условии, что это подключение активно.
Вкладка «Параметры» показана на рисунке 17.
Рисунок 17.
- Немедлено запускать задачу, если пропущен плановый запуск — В случае, если задача не была выполнена вовремя, она будет выполнятся при первой же возможности (например, если в это время был выключен компьютер, то задача начнет выполнятся сразу при его включении).
- При сбое выполнения перезапускать через — Если задача завершается с ошибкой, то можно указать времянной интервал, через который она будет повторно запущена. Так же можно задать количество повторных попыток запуска задачи.
- Останавливать задачу, выполняемую дольше — Можно принудительно остановить выполнение задачи, если задание выполняется дольше указанного времени.
- Принудительная остановка задачи, если она не прекращается по запросу — Если задача не останавливается, то она будет завершена принудительно.
- Если повтор задачи не запланирован, удалять через — Позволяет настроить автоматическое удаление «одноразовой» задачи спустя какое-то время.