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

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

Чем запуск по расписанию отличается от простой задержки

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

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

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

Настройка запуска программы по расписанию через планировщик

Сама настройка строится в планировщике заданий, открываемом знакомой командой:

taskschd.msc

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

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

schtasks /create /tn "НочнойБэкап" /tr "C:\Tools\backup.exe" /sc daily /st 03:00 /ru SYSTEM

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

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

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

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

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

Именно поэтому перенос тяжеловесов сложнее переноса лёгких программ. Лёгкие обычно честно сидят в видимом автозапуске и убираются одним движением. Тяжёлые же часто въедаются в систему глубже, заводя службы и собственные задания, и чтобы по-настоящему убрать их из старта, надо вычистить все эти места. Зато и выигрыш от их пересадки несоизмеримо больше, ведь именно они устраивали самую сильную бурю при включении, и их уход облегчает старт сильнее любой другой чистки.

Подбор удачного момента и привязка к простою машины

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

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

schtasks /create /tn "ЗадачаПоПростою" /tr "C:\Tools\scan.exe" /sc onidle /i 10

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

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

Что выигрывается в итоге и о чём не забыть

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

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

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

Управление созданными заданиями и их тиражирование

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

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

schtasks /change /tn "НочнойБэкап" /disable

Обратно его включают тем же средством с флагом включения, а полностью убирают командой удаления:

schtasks /delete /tn "НочнойБэкап" /f

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

Отдельная ценная возможность это перенос заданий между машинами. Настроенное задание выгружается в файл командой запроса с выводом в формате разметки:

schtasks /query /tn "НочнойБэкап" /xml > backup-task.xml

На другой машине этот файл разворачивают командой создания задания из готового описания:

schtasks /create /tn "НочнойБэкап" /xml backup-task.xml

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

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

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