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


Первое, на что следует обратить внимание еще до создания задач — запущена ли служба «Планировщик заданий ». Эта служба могла быть отключена при настройке системных служб для освобождения памяти в то время, когда использование Планировщика задач не было нужно. Теперь, если запланированные задания будут выполняться регулярно, то этот сервис надо переключить в автоматический режим запуска. Чтобы убедиться, что сервис запущен выполните Пуск — Выполнить — services.msc . Откроется окно, показанное ниже:

Найдите службу «Планировщик заданий» и убедитесь, что в поле Состояние у нее Работает , а в поле Тип запуска — Авто . Если это не так, то дважды щелкните по имени службы и в открывшемся окне скорректируйте значения на те, которые указаны выше (для этого нужно иметь привилегии администратора, т.е. Ваша учетная запись должна быть из группы Администраторы ).

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

Теперь создадим задачу.

Откройте Панель управления и щелкните по Назначенные задания . Откроется такое окно:

Для создания нового задания щелкните по Добавить задание .

В этом окне надо выбрать программу, которая будет запускаться . Как правило, нужная программа в этом списке отсутствует и ее надо найти при помощи кнопки Обзор . Для примера, я создал на диске С папку Scheduler и поместил в нее пакетный файл test.bat, в котором находится последовательность команд, которые надо запускать в определенное время. Нажав кнопку Обзор найдите файл, который будет запускаться и нажмите Открыть . Если все сделано правильно, то мастер создания нового задания выведет следующее окно:

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

Затем нужно выбрать период запуска этого задания. Возможны следующие варианты:

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

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


При ежедневном типе запуска есть возможность выбора: запускать ли задание ежедневно, либо запускать его только по рабочим дням (естественно, что праздничные дни на неделе считаются рабочими, задание запускается с понедельника по пятницу, включительно), либо запускать задание с периодичностью, например, один раз в три дня. В этом же окне нужно выбрать время запуска задания. «Дата начала » позволит отложить первый запуск задания до определенной даты, т.е. если сегодня первое число месяца, а «Дата начала » установлена на 10-е, то задача начнет выполняться с десятого числа, не смотря на то, что ее запуск запланирован как ежедневный.


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


При ежемесячном типе запуска задания необходимо отметить месяцы, по которым будет запускаться задание и указать число, когда задание будет запущено. Обратите внимание на то, что последнее число месяца может быть 28-е, 29-е, 30-е или 31-е, поэтому, если задание необходимо выполнить в конце месяца, то его запуск лучше запланировать на первое число следующего месяца в 00:01. Если есть необходимость не указывать конкретное число для запуска задания, а запускать его только, например, по третьим пятницам указанных месяцев, то можно переключить соответствующий переключатель и выбрать из полей со списками требуемые значения.


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

При загрузке компьютера

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

При входе в Windows

Такое задание будет выполняться при логине пользователя.

Выберите наиболее подходящее под требования к периодичности запуска расписание, даже если оно не полностью соответствует необходимому. Например, если задачу необходимо выполнять по рабочим дням в 21:00, а по выходным — в 19:00, то на этом этапе создания задачи следует выбрать еженедельный запуск задачи, а после ее создания скорректировать расписание нужным образом. Пример такой настройки показан на рисунке ниже.

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

В этом окне необходимо ввести имя и пароль под которыми будет запускаться задание. По умолчанию имя пользователя равно имени текущего пользователя. Будьте внимательны при вводе пароля, т.к. он скрывается «звездочками». Если пароль очень сложный, то лучше набрать его в любом текстовом редакторе (например, Блокнот ) и скопировать в соответствующие поля. Если при вводе пароля будет допущена ошибка, то никакого сообщения об этом выведено не будет, но задание выполняться не будет. Также, имейте ввиду, что в Windows XP недопустимо использовать пустой пароль, хотя учетная запись пользователя может быть с пустым паролем. Пустой пароль также приведет к тому, что задание не будет выполняться. Чтобы исправить это в Windows XP задайте учетной записи пароль и введите его в создаваемое задание.

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

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

После того, как имя пользователя и пароль введены, нажмите кнопку Далее .

Если расписание запуска полностью удовлетворяет требованиям, то после нажатия кнопки Готово, в окне, показанном на рисунке ниже, создание будет завершено и в окне Назначенные задания в Панели управления появится вновь созданное задание. Если расписание запуска задачи требует дальнейшей, более тонкой донастройки, то отметьте пункт «» и нажмите кнопку Готово . В этом случае, будет открыто окно для настройки дополнительных возможностей расписания запуска задачи.

Если есть необходимость настроить дополнительные параметры запланированного задания, то щелкните правой кнопкой по созданному заданию в папке Назначенные задания , находящейся в Панели управления и выберите Свойства . Если дополнительные настройки будут меняться сразу после создания задания, то в последнем окне при создании задания (рисунок в предыдущей главе) нужно поставить галку «Установить дополнительные параметры... » и нажать Готово . Любая из этих последовательность действий приведет к тому, что откроется такое окно.

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

На первой вкладке Задание , внешний вид которой показан на рисунке в самом начале статьи, находятся основные сведения о запланированной задаче. Это:

  • Путь к файлу, в котором сохраняются настройки задачи. На рисунке этот путь C:WINNTTasksТестирование Планировщика.job
  • В поле Выполнить указан путь к программе, которая запускается по расписанию. В данном примере это C:Scheduler est.bat
  • Кнопка Обзор позволяет изменить путь к запускаемой программе (если файл программы был перемещен) или выбрать другую программу. Тоже самое можно сделать вручную, введя путь и имя исполняемого файла в поле Выполнить , расположенное над кнопкой Обзор .
  • Следущее поле Рабочая папка содержит путь к папке, где программа, запуск которой запланирован, хранит свои файлы и создает отчеты о работе, если путь к отчетам не указан в самой программе. При помощи значения этого поля можно перенаправить создание отчетов в другую папку, а не в C:Scheduler, как в примере.
  • Текстовое поле Комментарий позволяет хранить описание запускаемой задачи. Это удобно при работе за компьютером нескольких людей, чтобы не возникало необходимости разбираться с тем, для чего задание было создано.
  • Следующее поле Пользователь содержит в себе имя пользователя от имени которого будет запущена задача. Это значение подробно было рассмотрено в конце предыдущей главы.
  • Кнопка Задать пароль предназначена для смены пароля, если было изменено имя пользователя в соответствующем поле. Практической пользы от этой кнопки нет, т.к. при попытке сохранить изменения в задании (в т.ч. и имени пользователя) будет выдан запрос пароля.
  • Галка Включено... служит для включения или отключения заданий. Ее снятие приведет к тому, что задание будет храниться в папке Назначенные задания , но выполняться не будет. Это удобно, когда задание выполняется время от времени по сложному расписанию. Отключение задания на время помогает избежать необходимости его удаления и создания, когда его потребуется выполнять вновь.

Внешний вид следующей вкладки :

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

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

В этом окне есть несколько дополнительных настроек расписания, о которых стоит сказать отдельно.

  • Дата начала . Позволяет указать дату первого запуска задания, после которой задание будет выполняться с заданным расписанием. Это поле может быть востребовано, когда запуск задачи должен быть начат в определенную дату, а не сразу после создания.
  • Дата окончания . Это поле позволяет указать дату последнего выполнения задания. После указанной в этом поле даты задание исполняться не будет. Чтобы появилась возможность указать дату окончания нужно поставить соответствующую галку.
  • Группа полей Повторять задание . Если поставить одноименную галку, то появится возможность настроить интервал запуска задания. Например, можно запускать задание каждые 30 минут в течение 8-ми часов или до определенного времени. Очень удобная возможность для решения определенных задач мониторинга событий. К примеру, иногда требуется проверять наличие в определенной папке файла с периодом в пять минут в течение рабочего дня и если он там появился, то запустить скрипт, который выполнит над файлом определенные действия.

    Галка Остановить задани е предназначена для того, чтобы завершить выполняемое задание, когда истекло время его выполнения. Например, в поле Выполнять до указано время 18:00. Если задание очень большое и исполняется полчаса, то запуск его в 17:55 приведет к тому, что задание фактически будет работать до 18:25. Если такое положение дел нежелательно, то нужно поставить галку Остановить задание . В этом случае выполнение задания будет прекращено в 18:00, несмотря ни на что.

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

    Создание нескольких расписаний способно удовлетворить практически любое пожелание по времени и периодичности запуска задания. Например, можно настроить задание таким образом, что оно будет запускаться в понедельник в 19:00 каждые 10 минут в течение 2-х часов, во вторник в 20:00 каждые 30 минут в течение часа, в среду в 14:00 каждые 5 минут до 20:00 и т.д. Как уже становится понятно, для реализации такой тонкой настройки запуска задания нужно создать расписание при помощи кнопки Создать . Каждое созданное расписание добавляется в поле со списком вверху вкладки. Для настройки или удаления одного из расписаний его нужно выбрать из списка и далее либо настроить так, как это было описано выше, либо удалить при помощи соответствующей кнопки.

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

Последняя третья вкладка , показанная ниже, содержит в себе дополнительные настройки задания.

  • Галка Удалить задание , если нет его повторения по расписанию, предназначена для того, чтобы удалить «одноразовые» задания из папки Назначенные задания в Панели управления . Установка этой галки приведет к удалению задания, если расписание его запуска не предусматривает последующих его запусков.
  • Поле Выполнять не дольше, чем позволяет указать максимальное время выполнения задания. Можно принудительно остановить выполнение, если задание выполняется дольше указанного времени.
  • Группа настроек Время простоя позволяет запускать задание только, если компьютер простаивает какое-то время. Полезно для планирования запуска ресурсоемких задач, которые отнимают при своем выполнении все время процессора, загружая его на 100%.
  • Первые две галки в группе Управление электропитанием позволяют указать запускать ли запланированную задачу на ноутбуке, если он работает от батарей. Последняя, третья галка, позволяет «будить» компьютер, когда он находится в ждущем режиме (режим низкого потребления электроэнергии, когда отключены практически все устройства компьютера, но он включен и восстанавливает свою работу при выводе из ждущего режима в течение пары секунд, причем, все приложения, открытые на момент перехода в ждущий режим не завершаются, а также ждут вывода компьютера из ждущего режима).

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

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

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

Теперь рассмотрим несколько вариантов расписаний настроенной задачи. Все расписания запускают файл test.bat из C:Scheduler. Я сначала создал задачу при помощи мастера, а затем в окне щелкнул по ней правой кнопкой мыши и выбрал Свойства .

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

Ежедневный запуск задачи

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

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

Запуск задачи через день

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

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

Отложенный ежедневный запуск задачи

В этом примере запланирован ежедневный запуск задачи, но первый ее запуск отложен на 10 дней.

Как видно, в Дополнительных настройках установлена дата начала работы задания на 17-е число, притом, что задание создано 6-го. Таким образом, мы создали задачу, но отложили начало ее ежедневного запуска на 10 дней.

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

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

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

Запуск задачи в разные дни недели в разное время

Этот пример демонстрирует настройку расписания запуска задачи в разные дни недели в разное время.

При помощи такого расписания реализована следующая задача. Задание запускается в рабочие дни в 21:00, а в выходные — в 9:00. На вкладке была установлена галка Показывать несколько расписаний , затем были отмечены галками рабочие дни и выставлено время запуска задачи в 21:00. Потом при помощи кнопки Создать было создано второе расписание, тип его запуска был изменен на и поставлены галки около выходных дней. Теперь в разные дни задача будет запущена в разное время.

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

Ежеминутный запуск задачи в рабочее время в рабочие дни

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

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

Ежемесячный запуск задачи

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

Запуск задачи запланирован на первую минуту нового месяца. Это связано с тем, что в месяце может быть 28, 29, 30 или 31 день. Чтобы не создавать для каждого месяца свое расписание, логичнее выполнять задачу первого числа каждого месяца.

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

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

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

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

Самые распространенные ошибки при создании задачи, которые приводят к незапуску задачи в указанное время или к неудаче при тестовом запуске задачи — неправильно введенные пароль. Не менее часто можно столкнуться с тем, что задача не запускается из-за пустого пароля у учетной записи. Windows 2000, в отличие от Windows XP, запустит задачу из-под учетной записи с пустым паролем. В XP запуск задачи выполнен не будет. Решение этой проблемы — задать пароль для учетной записи и указать его в настройках задачи.

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

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

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

На рисунке показано меню Дополнительно Планировщика . Чтобы открыть журнал работы выберите нижний пункт меню Просмотр журнала . Пример ошибки, записанной в журнал, показан ниже. "Тестирование Планировщика.job" (test.bat) 14.03.2004 20:51:20 ** ОШИБКА ** Попытка использования учетной записи задания окончилась неудачей, поэтому задание выполнено не было. Специфическая ошибка: 0x8007052e: Вход в систему не произведен: имя пользователя или пароль не опознаны. Проверьте правильность указания имени пользователя и пароля и повторите попытку.

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

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

Журнал работы находится в файле SchedLgU.Txt, который расположен в systemroot, т.е. в той папке, куда установлена Windows. Кодировка этого файла — Юникод.

Графа Состояние Планировщика может содержать значения, объяснение которых приведено в таблице ниже.

Успешные тестовые запуски задачи не отменяют необходимости постоянного контроля за выполнением задачи. Введя в «боевую» эксплуатацию задание, не забывайте периодически просматривать журнал и . Более разумное решение — создавать лог-файл работы самой задачи и по завершении ее работы открывать этот лог. К примеру, приходя утром на работу, Вы будете видеть открытое окно редактора с лог-файлом. Это вынудит невольно просмотреть результат выполнения задачи, а отсутствие открытого окна будет означать проблемы, возникшие либо при запуске задачи, либо в ходе ее выполнения. Это позволит оперативно исправить проблему.

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

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

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

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

При настройке задания не забывайте, что задание настраивается удаленно, а не локально.

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

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

Чтобы запустить «Планировщик заданий», нажмите на кнопку «Пуск», находящуюся в левой нижней части рабочего стола. Далее в поисковую строку введите слово «планировщик» и нажмите кнопку «Enter» (В английской версии Windows вместо слова вводится команда tasksch.msc). Программу можно открыть и другим способом – нажатием по «Пуск», затем «Панель управления» (расширенный вид), далее «Администрирование» – «Планировщик заданий».

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

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

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

Запланированная отправка почты

Для запланированной отправки электронной почты в раскрывающемся списке «Действие» выберите пункт «Отправка электронной почты». Заполните стандартные поля: адрес и имя электронной почты, имя и адрес получателя, заголовок письма, текст сообщения. Кнопкой «Обзор» укажите местоположение отправляемого файла, если это необходимо. В поле «Сервер smtp» вставьте smtp-сервер своей электронной почты и затем нажмите на кнопку «Ок».

Вывод на экран запланированного сообщения

Чтобы вывести на экран запланированное по расписанию сообщение, в списке «Действие» выберите пункт «Вывод сообщения». Обязательны для заполнения поля «Сообщение» и «Заголовок». Здесь пользователя останавливает лишь фантазия. Это может быть напоминание покормить кошку, выключить , посетить какой-нибудь сайт в интернете. Имеется возможность установить условия выполнения поставленной задачи, для этого нажмите кнопку «Условия». Дополнительные настройки можно регулировать и на вкладке «Параметры».

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

Удаление задачи и автозапуск планировщика

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

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

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

К счастью Linux имеет встроенную функцию, которая позволяет выполнять такие задания по расписанию. Она называется cron или crond для демона, который запускает эти службы (демон - это просто процесс, работающий в фоновом режиме).

Как работает Cron в Linux

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

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

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

Шаг 1. Находим Crontab

Cron - это одна из тех функций, которая почти идентична для всех дистрибутивов Linux, поэтому то, что вы узнаете здесь, можно будет использовать в Ubuntu, Red Hat, Suse, Mint, Slackware, CentOS и других. Cron является частью семейства Linux/UNIX еще с 70-х годов, поэтому он проверен, широко используется и считается надежным инструментом, поскольку на деле доказал свою ценность.

Как и многие другие вещи в Linux, функция cron управляется конфигурационным файлом, который представляет собой обычный текстовый файл. В многопользовательской среде каждый пользователь имеет свой собственный конфигурационный файл для cron, но здесь мы сосредоточимся только на пользователе root в Kali.

Конфигурационный файл cron называется crontab или «cron table» («таблица cron»). Чтобы найти файл crontab, введите в консоли:

Locate crontab

На скриншоте выше видно, что он находится в директории /etc, впрочем, как любой другой конфигурационный файл в Linux (есть исключения, конечно).

Шаг 2. Открываем crontab

Давайте откроем его и посмотрим что же у него внутри. Это делается с помощью любого текстового редактора, но в этой статье мы будем использовать графический текстовый редактор, устанавливаемый в Kali по умолчанию - Leafpad. Введите в консоли:

Leafpad /etc/crontab

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

Шаг 3: Анатомия Crontab

Давайте разложим crontab на части. Как видно на скриншоте выше, crontab начинается с пяти прокомментированных строк, которые начинаются с символа решетки (#). Эти строки - просто объяснения и примечания, они не читаются и не выполняются самой системой.

После этих строк вы видите такую пару строк:

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

SHELL=/bin/sh

Вторая строка задает переменную PATH. Переменная PATH является переменной среды (в Windows тоже такое есть), которая сообщает системе, где ей искать команды, используемые в задании cron. Как правило, это файлы в директориях bin и sbin (бинарные, т.е. исполняемые файлы), которые содержат системные команды, используемые в Linux (ls, echo, ps, cd и другие).

Здесь значением по умолчанию является такая строка:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Это значит, что демон cron будет искать в этих директориях те команды, которые ему нужны для выполнения запланированных вами заданий. Если вы используете команду или файл, которой нет в этих директориях, то просто отредактируйте эту строку и добавьте нужную директорию после ввода двоеточия (:). Например:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/newdir

Шаг 4. Определение задач по расписанию

Теперь идет самое «мясо» файла crontab. В третьем разделе мы как раз и планируем выполнение тех заданий, которые нужно запускать.

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

Поля файла crontab следующие:

  • Minute - определенная минута, когда команда или задание будет запущено (0-59)
  • Hour - определенный час выполнения команды или задания (0-23)
  • Day of the Month - день месяца, когда будет запущена команда или задание (1-31)
  • Month - месяц выполнения команды или задания (1-12)
  • Day of the week - день недели выполнения команды или задания (0-6, воскресенье = 0)
  • User - пользователь, который разрешает выполнение этой команды или задания
  • Command - команда или задание, которое вы хотите запускать по расписанию

Звездочка (*) представляет собой слово «любой», поэтому это может быть любой день, час или минута.

Использование Cron для поиска уязвимых серверов

Теперь давайте представим, что мы хотим просканировать весь Земной шар на предмет IP-адресов, уязвимых для Heartbleed.

Сообщается, есть больше 300 000 серверов, которые по-прежнему не пропатчены от этой уязвимости. Это очень большое число, при более чем 2 миллиардов IP-адресов по всей планете. Это количество означает, что уязвимым к этой атаке будет только 1 из 10 000 IP-адресов. Это также значит, что нам нужно настроить сканер таким образом, чтобы он повторял поиск по тысячам IP-адресов, для того, чтобы найти хотя бы один уязвимый сервер.

Это идеальная задача для работы с cron!

Шаг 5. Определение расписания для нашего Heartbleed сканера

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

Давайте снова откроем crontab в любом текстовом редакторе.

Теперь нам нужно добавить только одну строку, чтобы запускать наш nmap-сканер каждую неделю в 2:05 ночи. Просто добавьте эту строку в ваш файл crontab:

05 2 * * 1,2,3,4,5 root nmap -sV --script=ssl-heartbleed 68.76.0.0/16

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

Я расскажу, как настроить запуск скриптов R с определенным интервалом в операционной системе Windows.

1. Как добавить путь к R-консоли в переменную окружения PATH?

PATH — переменная окружения Unix-подобных операционных систем, DOS, OS/2 и Microsoft Windows, представляющая собой набор директорий, в которых расположены исполняемые файлы. В основном, каждый выполняемый процесс или сеанс пользователя имеет собственную переменную PATH.

Эта инструкция относится к операционным системам Windows 8 и 10, но вы без проблем можете подробные руководства и для любой другой версии Windows.
1.1. В строке «Поиск» найдите «Система (Панель управления)» и нажмите на ссылку «Дополнительные параметры системы».

1.2. В окне свойств системы нажмите на кнопку «Переменные среды...».

1.3. В разделе «Переменные среды» кликните на переменную PATH и нажмите «Изменить». Если переменной PATH не существует, нажмите «Создать».

1.4. Добавьте в переменную путь к папке с файлом «R.exe ».

Bat-файл, по сути, похож на файл с расширением exe, но его код более простой и состоит из некоторых командных строк.

Создать bat-файл довольно просто. Можно записать команду запуска в обычный текстовый файл с расширением TXT, сохранить его и поменять расширение на «.bat ». Я опишу другой способ — создание bat-файла с помощью бесплатного блокнота Notepad++.

2.1. Откройте Notepad++ (скачать его можете по ссылке).

2.2. Введите следующую команду:

@echo off R CMD BATCH C:\R\myscript.R

Команда «@echo off » отключает вывод сообщений в командной строке при работе скрипта, вы можете изменить эту команду на «@echo on » и наблюдать за выполнением скрипта в ходе его работы.

Команда «R CMD BATCH » запускает выполнение R скрипта.

Во второй строке вместо «C:\R\myscript.R» пропишите путь к вашему файлу со скриптом R.

В результате файл будет выглядеть так:

2.3. Сохраните созданный текстовый файл с расширением BAT. Для этого в меню Notepad++ выберите пункт «Файл» — «Сохранить как» — «Batch file (bat, cmd, nt)».

Если вы не хотите, чтобы при автозапуске R-скрипта на экране появлялось окно командной строки, то скомпилируйте ваш bat-файла в exe — в таком случае скрипт будет работать в фоновом режиме и не будет вам мешать.

3.1. Скачайте бесплатную утилиту «Bat To Exe Converter» по ссылке .

3.2. Укажите bat-файл, который необходимо скомпилировать, а также путь и название будущего exe-файла.

3.3. В области «Видимость приложения» установите переключатель в положение «Невидимое приложение».

3.4. При желании установите иконку для вашего файла.

Чтобы установить иконку, перейдите на вкладку «Информация о версии» и с помощью кнопки «...» выберите нужную иконку в поле «Файл значка».

В качестве иконки можете использовать любое изображение в формате ICO или же нарисовать самостоятельно в бесплатном онлайн-редакторе .

Нажмите кнопку «Компилировать».

4. Настройте планировщик задач Windows

Заключительный этап настройки — добавить задачу в планировщик задач Windows.

Планировщик задач Windows — встроенная утилита (аналог линуксового CRON), с помощью которой можно запланировать в определенное время с заданными условиями:

  • запуск любой программы;
  • отправку электронной почты;
  • вывод на экран определенного сообщения.

4.1. Чтобы открыть планировщик задач, скопируйте в адресную строку открытой папки путь «%windir%\system32\taskschd.msc /s ».

4.2. В правой части планировщика выберите пункт «Создать задачу...».

4.3. На вкладке «Общие» в диалоговом окне «Создание задачи» введите название и при необходимости краткое описание.

4.4. На вкладке «Триггеры» настройте расписание запуска скрипта: нажмите «Создать» и установите, к примеру, повтор запуска скрипта каждый понедельник в 12:45.

На этом процесс настройки запуска R скриптов по расписанию закончен. Если вы все сделали правильно, в списке появится новая задача.

Вывод

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

Алгоритм действий:

  1. В переменной окружения PATH пропишите путь к консоли R.
  2. Создайте скрипт R, который будет выполнять нужные действия (например, сохранять результат в файл формата CSV или записывать в базу данных).
  3. Создайте bat-файл, в котором будет прописан путь к скрипту R.
  4. Скомпилируйте ваш bat-файла в exe, чтобы он запускался в фоновом режиме и не отвлекал от работы.
  5. В планировщике задач Windows добавьте повторяющееся задание на запуск bat-файла и установите определенный интервал времени.

Обрабатывать огромные массивы данных, агрегировать и передавать их в любые базы — просто и быстро, если вы правильно организовали свою работу.

На этой странице хочу рассказать, как создать назначенное задание в Windows 2008 и Windows 2008 R2 .

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

  • наступление определенного времени;
  • смена состояния системы (выключение, ждущий режим и т.д.);
  • ручной запуск через интерфейс планировщика заданий.

Итак, создание назначенного задания в Windows 2008:

1. Нажимаем кнопку «Пуск» и выбираем пункт «Панель управления»:

2. В появившемся окне выбираем «Администрирование»:

4. В планировщике заданий создаем простую задачу:

5. Вписываем имя нашей задачи и ее описание. Жмем «Далее»:

6. Выбираем периодичность запуска. Жмем «Далее»:

8. Выбираем действие «Запустить программу». Жмем «Далее»:

9. Жмем кнопку «Обзор» и выбираем наш исполняемый файл, запуск которого мы хотим осуществить. Жмем «Далее»:

10. Указываем галочку дополнительных настроек. Жмем «Готово»:

11. По умолчанию назначенное задание запускается от имени того, кто его создал. Если необходимо изменить пользователя, нажмите кнопку «Изменить» и выберите нового пользователя. Поставьте отметку «Выполнить с наивысшими правами» и нажмите «ОК»:

Все! Наше назначенное задание готово!



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: