Как администратору, вам, вероятно, приходится выполнять одни и те же или похожие задачи практически каждый день. Возможно, вы даже вынуждены приходить на работу раньше или оставаться допоздна, чтобы выполнять эти задачи в нера­бочее время. Такими задачами могут быть рутинные операции обслуживания, например, удаление временных файлов, чтобы избежать переполнения дисков, или резервное копирование важных данных. Среди этих задач встречаются процессы и по­сложнее, в частности просмотр журналов событий на всех биз­нес-серверах для выявления проблем, требующих решения. Хорошая новость в том, что если вы можете разбить эти зада­чи на этапы, есть шанс их автоматизировать. Microsoft Win­dows предоставляет для этого несколько способов, включая:

  • Schtasks - «продвинутая» утилита командной строки для запуска команд, сценариев и программ па основе расписа­ния. Задания могут быть назначены для запуска однократ­но, поминутно, через определенный интервал (например ежечасно, ежедневно или ежемесячно), при загрузке систе­мы, при входе в систему или во время простоя системы ;
  • Task Scheduler (Планировщик заданий) - GUI-утилита для запуска команд, сценариев и программ на основе рас­писания. Task Scheduler выполняет те же операции, что и утилита командной строки Schtasks, что позволяет исполь­зовать их совместно и управлять заданиями, созданными в любой из этих утилит при помощи любого инструмента.

Планирование заданий на локальных и удаленных системах

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

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

  • Запуске системы - если вы настраиваете задание на запуск при старте системы, планировщик заданий запускает его как неинтерактивный процесс. Задание выполняется до пол­ной обработки, принудительного завершения или до вык­лючения системы. Помните, что завершить выполняемые задания может только их владелец или администратор.
  • Входе в систему - если вы настраиваете задание на запуск при входе пользователя в систему, планировщик заданий запускает его, когда кто-то входит в систему. Задание выпол­няется до полной обработки, принудительного завершения или до выхода пользователя из системы. В зависимости от настройки задания, запускаемые при входе (logon tasks), мо­гут выполняться интерактивно или неинтерактивно.
  • Простое системы - если вы настраиваете задание на за­пуск в простое системы, планировщик заданий запускает его при отсутствии действий пользователя за указанное вре­мя. Например, можно создать задание, которое запускает­ся, если система простаивает пять минут. Но помните, что дальнейшие действия пользователя не завершат задание. Оно будет выполняться либо до конца, либо до принуди­тельного завершения.

С помощью скриптов 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-файла и установите определенный интервал времени.

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

2018-06-22T12:04:23+00:00

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

Запуск по расписанию работает через стандартный механизм Windows, который называется "Планировщик задач".

И, когда пользователь задаёт настройки расписания...

Обновлятор автоматически создаёт нужные задачи в планировщике:

Чего нельзя забывать

Выбор пользователя

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

Должен иметь права в системе на "Вход в качестве пакетного задания".

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

Самый простой вариант, это нажать правой кнопкой на созданном задании в планировщике и выбрать "Выполнить":

Если после того как отработает задача результат её запуска будет успешным...

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

Должен иметь непустой пароль. Это требование безопасности Windows. Если вы столкнулись именно с этим ограничением, то самым правильным решением будет:

Ну а самым простым (но неправильным с точки зрения безопасности) решением этого ограничения будет отключить опцию "Разрешить использование пустых паролей только при консольном входе" в локальной политике безопасности компьютера.

Выбор баз

Также нельзя забывать, что в операциях, запущенных по расписанию участвуют только те базы, которые выбраны в списке баз, участвующих в расписании:

При этом не важно стоит ли отметка рядом с базой в общем списке:

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

Порядок запуска

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

Это означает, что если нам, к примеру, нужно настроить, чтобы в 22-00 выполнялась архивация, а сразу после её окончания обновление баз, то достаточно для архивации указать время запуска 22-00, а для обновления, например, 22-01.

Что если нужно более сложное расписание

А что, если нам нужен не просто регулярный запуск в определенное время в определенные дни? Что если мы хотим, скажем, настроить запуск с 5 часов каждые пол часа, ну или что-то в этом роде?

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

Сначала настраиваем расписание через обновлятор, указав что конкретное расписание будет настроено уже в планировщике:

А уже затем открываем свойства созданных обновлятором задач в планировщике Windows:

И на соответствующих вкладках настраиваем всё, что наша душа пожелает:

Как исключить базу из некоторых операций по расписанию

Предположим, что у нас настроено расписание для обновления и для архивации:

Но при этом мы хотим, чтобы одна база участвовала в архивации по расписанию, но при это не участвовала в обновлении по расписанию.

Как же этого добиться - ведь список баз участвующих в расписании у нас один:

А сделать это очень просто.

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

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

Должно получиться вот так:

Возможен ли запуск по расписанию с другими параметрами

Хочу обратить отдельное внимание на то, что задача в планировщике задач - это обычный запуск обновлятора с определенными параметрами командной строки:

А параметров для запуска через командную строку у обновлятора много.

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

Обо всех ключах командной строки обновлятора .

Как узнать запускался ли обновлятор по расписанию

Бывает так, что расписание вроде бы настроили - но что-то идёт не так.

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

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

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

Также мы можем зайти в полный журнал отчётов обновлятора...

И посмотреть происходило ли выполнение задач.

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

Чтобы включить журнал планировщика Windows заходим в диалог "Запуск по расписанию" и нажимаем кнопку "Открыть планировщик Windows":

Это можно сделать также и из панели управления Windows (раздел администрирование).

Здесь находим и нажимаем пункт "Включить журнал всех заданий":

Готово! Теперь мы сможем просматривать историю работы любой задачи в планировщике.

Например, выделим одну из задач обновлятора:

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

Сейчас я расскажу о способе как застраховать себя от ситуации - "ой, у нас оказывается уже целую неделю не архивируются (обновляются, тестируются..) базы".

Такая ситуация очень даже возможна, если мы настроили запуск архивации по расписанию, а затем:

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

А нужно всего лишь в дополнение к настройке уведомлений об ошибках на почту настроить облачную систему мониторинга запуска нашего обновлятора. Что это и как работает?

Это, на мой взгляд, совершенно гениальная штука, которая называется healthchecks.io . У этих ребят есть и платные тарифы, но нам вполне сгодится их бесплатный тариф.

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

  • Эй, HealthChecks, дай мне уникальный Url (адрес интернет ресурса).
  • HealthChecks, если по этому адресу никто не будет стучаться (запрашивать) в течение такого-то периода - оповести меня об этом на такую-то почту.

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

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

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

Простейший сценарий настройки HealthChecks вместе с обновлятором

Пусть мы настраиваем ежедневную архивацию на сервере с именем DataServer , который принадлежит компании ООО "Ромашка" :

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

3. Регистрируемся на почту, на которую хотим получать оповещения.

3. Переходим в раздел "Checks" и нажимаем большую зелёную кнопку "Add Check".

5. Изменим имя этой проверки на OOO "Romashka" (DataServer, archiving). Это нужно сделать, чтобы мы понимали с чем именно связана эта проверка (архивация на сервере с именем DataServer в компании ООО "Ромашка"):

6. Укажем период проверки (архивация должна запускаться 1 раз в день, сам процесс архивации может занимать до 12 часов):

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

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

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

Отсюда и дополнительный запас в 12 часов, чтобы не было ложных срабатываний от HealthChecks.

Результат настройки периода будет таким:

7. Но как видите поле Last Ping пустое (Never). Оно будет обновляться по мере обращения к этому адресу обновлятором при архивации. А если обращения не будет больше чем 1 день и 12 часов, то HealthChecks забьёт тревогу и оповестит нас на почту.

04.10.2009 17:50

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

Чтобы запустить Планировщик заданий, откройте меню Пуск, в поисковую строку введите и нажмите Ввод (в нерусифицированной Windows 7 вместо слова введите taskschd.msc ).

Также можно открыть Панель управления (расширенный вид) -> Администрирование -> Планировщик заданий .

В расположенном справа меню Действия нажмите Создать задачу (или Создать простую задачу ).

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

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

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

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

Чтобы запланировать отправку электронной почты по расписанию, в раскрывающемся списке Действие выберите Отправка электронной почты и заполните стандартные поля: От (ваши имя и адрес электронной почты), Кому (имя и адрес получателя письма), Тема (заголовок письма) и Текст (текст сообщения). Если нужно прикрепить файлы к отправляемому сообщению, с помощью кнопки Обзор укажите местоположение файла, который хотите прикрепить. В поле Сервер smtp укажите smtp-сервер поставщика своей электронной почты (например, smtp.mail.ru ) и нажмите OK .

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

Очень удобная вещь, когда нужно напомнить себе о том, что через 5 минут наступит Новый год, что пора покормить кошку, выключить суп или зайти на сайт Windows 7 – Впечатления и факты. Выглядеть такое сообщение будет примерно так:

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

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

После завершения всех этих действий, нажмите OK , чтобы создать задачу.

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

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

Примечание . Чтобы Планировщик заданий функционировал, служба планировщика заданий должна автоматически запускаться вместе с Windows 7. Откройте Панель управления (расширенный вид) -> Администрирование -> Службы . В списке служб найдите, дважды щелкните по ней, на вкладке Общие установите тип запуска Авто и нажмите OK .

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

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

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

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

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

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

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

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

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

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

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @echo OFF

    WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"

    Msg * Задача выполняется с правами пользователя - %USERNAME%

    Msg * Задача выполняется с правами администратора.

    Файл можно создать в обычном текстовом редакторе, скопировав приведенный выше текст, выделенный зеленым цветом и присвоив ему имя who-admin.bat . Для правильного отображения кириллицы необходимо использовать DOS-кодировку (CP866, кодовую страницу 866) или изменить текст сообщений для вывода на английском языке. Если текстовый редактор не поддерживает кириллицу в DOS-кодировке, можно воспользоваться сторонними программами (например - iconv ) или онлайн-сервисами наподобие Универсального декодера-конвертера кириллицы. Можете просто скачать архив с командным файлом в правильной кодировке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @echo off

    Rem action - установка значение disable или enable

    Set task_action=disable

    REM Проверка наличия прав администратора

    @WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" > nul

    If %ERRORLEVEL% == 0 goto admin

    Echo Execution aborted. Run this batch file AS Administrator !!!

    @echo try %task_action% scheduled tasks ...

    Rem Сбор и передача данных дистанционного отслеживания приложений (при явном согласии участвовать в

    Rem программе улучшения качества программного обеспечения).

    Schtasks /change /tn "\Microsoft\Windows\Application Experience\AitAgent" /%task_action% >> %~dn0.log

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

    Schtasks /change /tn "\Microsoft\Windows\Application Experience\ProgramDataUpdater" /%task_action% >> %~dn0.log

    Rem Эта задача собирает и загружает данные SQM при участии в программе улучшения качества

    Rem программного обеспечения.

    Schtasks /change /tn "\Microsoft\Windows\ Autochk\Proxy" /%task_action% >> %~dn0.log

    Rem Если пользователь изъявил желание участвовать в программе по улучшению качества программного

    Rem обеспечения Windows, эта задача будет собирать и отправлять сведения о работе программного

    Rem обеспечения в Майкрософт.

    Schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator" /%task_action% >> %~dn0.log

    Rem При выполнении задачи программы улучшения качества ПО, выполняющейся в режиме ядра (Kernel

    Rem CEIP), осуществляется сбор дополнительных данных о системе, которые затем передаются в

    Rem корпорацию Майкрософт. Если пользователь не дал своего согласия на участие в данной программе,

    Rem то эта задача не выполняет никаких действий.

    Schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask" /%task_action% >> %~dn0.log

    Rem При выполнении задачи программы улучшения качества ПО шины USB (USB CEIP) осуществляется сбор

    Rem статистических данных об использовании универсальной последовательной шины USB и сведений о

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

    Rem в Windows. Полученные сведения используются для повышения надежности, стабильности и общей

    Rem производительности шины USB в Windows. При отсутствии согласия пользователя на участие в

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

    Schtasks /change /tn "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" /%task_action% >> %~dn0.log

    Rem Эта задача выполняет дефрагментацию жестких дисков компьютера.

    Schtasks /change /tn "\Microsoft\Windows\ Defrag\ScheduledDefrag" /%task_action% >> %~dn0.log

    Rem Измеряет быстродействие и возможности системы

    Schtasks /change /tn "\Microsoft\Windows\ Maintenance\WinSAT" /%task_action% >> %~dn0.log

    REM Запуск приложений, настроенных для Windows HotStart

    Schtasks /change /tn "\Microsoft\Windows\ MobilePC\HotStart" /%task_action% >> %~dn0.log

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

    Rem к повышенному энергопотреблению.

    Schtasks /change /tn "\Microsoft\Windows\Power Efficiency Diagnostics\ AnalyzeSystem" /%task_action% >> %~dn0.log

    Rem Задача средства анализа стабильности системы, предназначенная для обработки данных о надежности

    Rem компьютера.

    Schtasks /change /tn "\Microsoft\Windows\ RAC\RacTask" /%task_action% >> %~dn0.log

    REM (Windows Live Social Object Extractor Engine) After installing Windows Live Essentials 2011,

    REM it creates a task called "Extractor Definitions Update Task". The purpose of this task is to

    REM update the definition file for the Windows Live Social Object Extractor Engine. The task

    REM can be found under, Task Scheduler Library\Microsoft\Windows Live\SOXE. -

    REM Read more at http://www.shouldiremoveit.com/windows-live-soxe-5304-program.aspx

    Schtasks /change /tn "\Microsoft\Windows Live\SOXE\Extractor Definitions Update Task" /%task_action% >> %~dn0.log

    Rem Эта запланированная задача предназначена для уведомления пользователя о том, что архивация

    Rem Windows не настроена.

    Schtasks /change /tn "\Microsoft\Windows\ WindowsBackup\ ConfigNotification" /%task_action% >> %~dn0.log

    Учтите, что отключение системных заданий - небезопасная операция, и ее последствия целиком на вашей совести. Так, например, командный файл отключает задание на дефрагментацию файлов, которое не имеет смысла при использовании SSD-диска, но может быть полезным при использовании механических HDD. Кроме того, если вы посмотрите действия, выполняемые заданием дефрагментации, то увидите, что выполняется запуск программы %windir%\system32\defrag.exe –c , где -c - параметр, задающий выполнение дефрагментации на всех дисках. Может быть, имеет смысл создать несколько заданий с разными триггерами для разных дисков, исключив SSD. Можно также изменить параметры существующей задачи, исключив дефрагментацию SSD - дисков:

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

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

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

    Использование планировщика заданий для запуска приложений от имени Администратора без запроса системы контроля учетных записей UAC.