Введение
При помощи материала, изложенного в предыдущих пяти статьях, вы уже приобрели некоторые навыки, которые позволяют выполнять административные задачи по управлению назначенными заданиями средствами командной строки, а именно ее утилиты SchTasks. Теперь вы знаете, как можно создавать простые и сложные задачи, используя контекст /Create. Помимо этого в одной из статей была расписана концепция событийно-управляемых задач, где вы научились создавать такого рода задания при помощи графического интерфейса (а именно, используя функционал оснасток «Просмотр событий» и «Планировщик заданий») и используя утилиту командной строки SchTasks/Create со значением ONEVENT параметра /SC. Вы узнали о том, как можно просматривать созданные задания, используя контекст /Query утилиты SchTasks, и в последних двух статьях разобрались со структурой конфигурационных XML-файлов, в которых указываются абсолютно все настройки для создаваемого или существующего задания. В этой, заключительной статье вы узнаете об остальных контекстах утилиты SchTasks, которые помогают эффективно управлять назначенными заданиями. Вы узнаете о средствах изменения, удаления, запуска, а также о выводе ИД для указанного вами задания.
Изменение назначенных заданий. Команда SchTasks /Change
Иногда после создания назначенного задания, скажем, во время тестирования, вы можете обнаружить, что при его создании вами была допущена ошибка. Может быть, вы указали не корректное действие для данного задания или ошиблись с кодом события при добавлении триггера событийно-управляемого задания, или не указали какой-то важный параметр. Ошибки случаются у всех и если у вас, при создании нового задания, была допущена ошибка в каком-то параметре, то функционал операционной системы Windows позволяет вносить изменения в существующие задания. Используя графический интерфейс, а именно, оснастку «Планировщик заданий», для внесения изменений в существующее задание, вам нужно в дере консоли развернуть узел, содержащий задание с ошибкой и в области сведений дважды щелкнуть на выбранном задании или открыть его свойства любым из доступных способов.
Также как и во всех предыдущих случаях, функционал утилиты командной строки SchTasks, также позволяет вносить любые изменения в существующее задание. Для этого вам нужно воспользоваться контекстом /Change. Синтаксис данной команды довольно простой:
SchTasks /CHANGE (/S /U /P) /TN %имя_задания% [/Параметры]
С этой командой вы можете использовать двадцать параметров. Все эти параметры подробно были рассмотрены во второй статье данного цикла. Вы можете воспользоваться тремя параметрами, для того чтобы указать имя компьютера, пользователя и пароля для указанной вами учетной записи – параметры /S, /U, /P. Обязательным параметров данного контекста является параметр /TN, при помощи которого вы указываете название изменяемого задания. Необязательные параметры /RU и /RP определяют учетную запись, под которой будет выполняться данное задание. Также как и в контексте создания нового задания, за параметры времени начала и остановки, а также за интервал повторения, длительность выполнения и дату первого и последнего запуска отвечают параметры /ST, /ET, /RI, /DU, /SD и /ED. Помимо всех вышеперечисленных параметров, вы можете завершить задание по достижении указанного вами времени (параметр /K), разрешать интерактивное выполнение задания (параметр /IT), выбирать уровень привилегий (/RL), помечать задание для выполнения после того как оно будет выполнено (параметр /Z), а также указывать время задержки перед началом выполнения (параметр /DELAY). Обычно, ключевым параметром данного контекста является параметр /TR – изменение утилиты командной строки или сценария, выполняемого в указанном задании. Наконец, последними двумя параметрами являются параметры /ENABLE и /DISABLE, которые отвечают за активацию или отключение изменяемого вами задания.
В следующем примере, укажем дату завершения задания «Последнее задание», которое нами было создано во второй статье данного цикла, а также установим для его выполнения наивысшие права:
SchTasks /Change /TN «Последнее задание» /ED 22/12/2012 /RL Highest
Увеличить рисунок
Рис. 1. Изменение существующего задания средствами командной строки
Удаление назначенных заданий. Команда SchTasks /Delete
Функционал планировщика заданий и утилиты командной строки SchTasks позволяет вам автоматизировать большинство рутинных задач. И вполне очевидно, что рано или поздно вам понадобится удалить какое-либо созданное ранее задание. Как вы уже догадались, при помощи оснастки «Планировщик заданий», вы можете удалить задание, используя команду «Удалить» из контекстного меню задания, из области «Действия», а также из меню «Действие». Также задание удалится по нажатию на клавишу «Delete» на выделенном задании.
Утилита командной строки SchTasks также позволяет вам удалять любое задание по имени на локальном или удаленном компьютерах. Для выполнения этих действий вы можете воспользоваться контекстом /Delete. Вместе с данным контекстом можно использовать любой из пяти следующих параметров:
- /S. Также как и во всех контекстах, которые были рассмотрены ранее, данный параметр предназначен для определения удаленного компьютера, на котором будет удаляться выбранное вами задание;
- /U. Данный параметр отвечает за учетную запись пользователя, в которой будет удалено данное задание;
- /P. Используя этот параметр, вы можете указать пароль для учетной записи, которая была вами определена параметром /U;
- /TN. При помощи текущего параметра, вы можете указать название задания, которое будет удалено. Если вы хотите удалить все задания, то вместо названия укажите *;
- /F. Этот параметр позволяет вам выполнить форсированное удаление задания, иными словами, принудительное удаление с подавлением всех сообщений.
В следующем примере будет удалено задание «Запуск дефрагментации», которое расположено в узле «\Microsoft\Windows\Defrag» с подавлением всех сообщений:
SchTasks /Delete /TN «\Microsoft\Windows\Defrag\Запуск дефрагментации» /F
Увеличить рисунок
Рис. 2. Удаление назначенного задания средствами командной строки
Запуск назначенного задания. Команда SchTasks /Run
В предыдущих статьях я рассказывал о том, как можно создать новое задание, которое будет запущено согласно расписанию. Однако иногда бывают такие случаи, когда вам нужно выполнить действие, которое было создано в задании немедленно, несмотря на то, что время запуска еще не наступило. Используя функционал оснастки «Планировщик заданий» вы можете выбрать команду «Выполнить» из контекстного меню задания, из области «Действия», а также из меню «Действие».
Такое же действие доступно и в функционале утилиты SchTasks. Для запуска задания средствами командной строки вам нужно воспользоваться контекстом /Run. Запуск задания не влияет на его расписание и не изменяет время следующего запуска. Набор параметров для этого контекста невелик. Вы можете указать имя удаленного компьютера, учетную запись пользователя под которым будет выполняться задание, а также пароль к этой учетной записи, используя уже известные вам параметры /S, /U и /P. Параметр /TN позволяет вам указать название задания, которое необходимо запустить. Помимо этих параметров, вы еще можете указать параметр /I, значение которого отличается от одноименного параметра контекста /Create. Данный параметр позволяет немедленно запустить задания, игнорируя все ограничения. Если задание удастся успешно запустить, вы увидите соответствующее сообщение.
В следующем примере будет запущена дефрагментация компьютера:
SchTasks /Run /TN «\Microsoft\Windows\Defrag\ScheduledDefrag» /I
Увеличить рисунок
Рис. 3. Немедленный запуск задания дефрагментации компьютера средствами командной строки
Остановка выполняемого задания. Команда SchTasks /End
В некоторых случая при выполнении задач, которые занимают много времени, вам может понадобиться остановить выполняемое задание. Остановка задания, так же как и немедленный запуск, не повлияют на его дальнейшее расписание. При помощи оснастки «Планировщик заданий» вы можете остановить выполняемое задание, используя команду «Завершить» из контекстного меню задания, из области «Действия», а также из меню «Действие».
Утилита командной строки SchTasks тоже поддерживает данную функцию. Для этого вы можете воспользоваться контекстом /End. Для этого контекста можно использовать четыре основные команды, которые рассматривались в каждом из предыдущих контекстов - /S, /U, /P, а также /TN, при помощи которого вы можете указать название останавливаемого задания, которое на данный момент выполняется.
В этом примере будет остановлено задание, которое мы запускали в предыдущем разделе, то есть дефрагментация компьютера:
SchTasks /End /TN «\Microsoft\Windows\Defrag\ScheduledDefrag»
Увеличить рисунок
Рис. 4. Остановка задания дефрагментации компьютера средствами командной строки
Отображение ID безопасности. Команда SchTasks /ShowSid
Для выполнения заданий с минимальными необходимыми привилегиями, функционал утилиты SchTasks командной строки поддерживает функционал упорядочивания в области безопасности. По умолчанию эта функция включена и вы, как создатель задания, можете в него внести коррективы, используя маркер процесса задачи. Когда выполняется задание, механизм планировщика заданий записывает журналы в основной учетной записи, получает маркер процесса и запросы списка привилегий, которые сравниваются со специальным списком привилегий.
Для определения идентификатора безопасности любого назначенного задания, существует контекст /ShowSid утилиты SchTasks командной строки. Для этого контекста вы можете использовать только один обязательный параметр - /TN, определяющий название задания, для которого вы хотите узнать идентификатор безопасности.
В следующем примере, постараемся узнать идентификатор безопасности для задания «Последнее задание», которое расположено в узле «Библиотека планировщика заданий»:
SchTasks /ShowSid /TN «Последнее задание»
Увеличить рисунок
Рис. 5. Определение идентификатора безопасности для назначенного задания
Заключение
На этом заканчивается цикл статей, посвященных управлению функционалом планировщика заданий средствами командной строки, а именно – утилиты SchTasks. Вы теперь знаете, как можно создавать простые, сложные и событийно-управляемые задачи, используя контекст /Create и как просматривать созданные задания, используя контекст /Query. В двух статьях была подробно рассмотрена структура конфигурационных XML-файлов, в которых указываются абсолютно все настройки для создаваемого или существующего задания. В этой, заключительной статье, вы узнали об остальных контекстах утилиты SchTasks командной строки. Вы научились изменять существующие задания, используя контекст /Change, запускать и останавливать задания – контексты /Run и /End. Помимо этих контекстов, вы научились удалять существующие задания, а также просматривать идентификаторы безопасности для существующих заданий.