Управление назначенными заданиями средствами командной строки. Часть 1
Посетителей: 29420 | Просмотров: 39969 (сегодня 0)
Введение
По какой-то причине уже давно у многих пользователей появилось такое мнение, что в операционных системах Windows существуют самая «не нужная» и «бесполезная» служба и системная утилита «Планировщик заданий». Планировщик заданий версии 1.0 (присутствовал в операционной системе Windows XP и более ранних версиях) в основном предоставлялся только для нужд конечного пользователя. В современных операционных системах, таких как Windows Vista и Windows 7, функционал планировщика заданий значительно усовершенствовался. Планировщик задания является самым важным средством операционной системы, предназначенным для автоматизации рутинных операций обслуживания. Теперь планировщик заданий поддерживает модель безопасной изоляции, при помощи которой каждый набор задач, работающих в конкретном контексте безопасности, запускается в отдельных сессиях. Задачи, которые выполняются от имени разных пользователей, запускаются в отдельных сессиях – в полной изоляции друг от друга. Помимо запуска программ и сценариев, вы можете составить расписание для запуска любого средства, которое можно запустить средствами командной строки, включая утилиты командной строки, сценарии, приложения, файлы и ярлыки, а также всевозможные аргументы командной строки. При помощи триггеров, вы можете отправлять сообщение электронной почты при успешном запуске задания. При помощи приложения «Планировщик заданий» версии 2.0, вы можете даже привязать любое задание к событию, что позволит вам эффективно разрешать большинство проблем, которые могут случиться с вашей операционной системой.
Средства управления заданиями
Как говорилось выше, «Планировщик заданий» поддерживает модель изоляции, что позволяет каждому набору задач, работающих в конкретном контексте безопасности запускаться в отдельной сессии. Механизм планировщика задач запускает переходные процессы для выполнения процессов учетных записей пользователя или компьютера для запуска триггера. Триггер — это набор условий, при выполнении которых запускается задание. Триггеры, основанные на времени, запускают задание однократно в определенное время суток либо ежедневно, еженедельно или ежемесячно. Триггеры, основанные на событиях, запускают задание при возникновении определенных системных событий. Задачи могут быть запущены от таких учетных записей компьютера, как LocalSystem, LocalService или NetworkService.
Задачи могут быть запущены как локально, так и удаленно. Каждая задача может содержать несколько одновременно выполняемых действий. Несколько задач могут выполняться как параллельно, так и последовательно(одна за другой), используя синхронизацию с указанной службой или событием. Каждое действие планировщика заданий записывается в журналы «Система» и «Журналы приложений и служб\Microsoft\Windows\TaskScheduler». Для работы, «Планировщик заданий» использует несколько компонентов, которые предназначены для предоставления пользовательского интерфейса, механизма выполнения заданий, отслеживания и управления событиями, а именно:
- Оснастка консоли управления Microsoft «taskschd.msc», которая включает мастер для создания и настройки задач и страницы свойств, которые обращаются к службе планировщика заданий через COM API;
- Библиотека службы планировщика заданий SchedSvc.dll, выполняемая внутри процесса Svchost.exe, от имени учетной записи LocalSystem, которая использует компоненты TaskSchd.dll для взаимодействия с менеджером ресурсов и компонентом Service for User, предназначенным для получения доступа к учетным данным. Эта служба также считывает информацию о конфигурации из системного реестра и записывает задания на диск в формате XML;
- Механизм переходного процесса управления TaskEng.exe, который позволяет выполнять задачи от имени учетной записи пользователя и создавать пользовательские процессы, выполняющие указанные задания;
- Библиотека TaskComp.dll, которая обеспечивает обратную совместимость для управления и выполнения задач, которые были созданы в предыдущих версиях Windows.
Упрощенную схему архитектуры планировщика заданий версии 2.0 вы можете увидеть на следующей иллюстрации:
Рис. 1. Упрощенная схема архитектуры планировщика заданий
Операционная система Windows предоставляет несколько средств, предназначенных для планирования заданий на локальных и удаленных компьютерах, а именно:
Оснастка «Планировщик заданий». Оснастка консоли управления Microsoft «Планировщик заданий» позволяет запускать программы, команды и сценарии на основании расписания, а также назначать автоматически выполняемые задания, запуск которых производится в определенное время или при возникновении определенных событий средствами удобного пользовательского интерфейса. Данная оснастка содержит библиотеку всех назначенных заданий, что позволяет вам быстро находить нужные задания.
Запустить планировщик заданий вы можете любым из следующих способов:
- Нажмите на кнопку «Пуск» для открытия меню, откройте папку «Все программы», затем откройте папку «Стандартные > Служебные» и выберите элемент «Планировщик заданий»;
- Нажмите на кнопку «Пуск» для открытия меню, откройте «Панель управления», из списка компонентов панели управления выберите категорию «Система и безопасность», выберите подкатегорию «Администрирование», а затем перейдите по ссылке «Планировщик заданий»;
- Нажмите на кнопку «Пуск» для открытия меню, в поле поиска введите Планировщик и в найденных результатах откройте приложение «Планировщик заданий»;
- Воспользуйтесь комбинацией клавиш
+R для открытия диалога «Выполнить». В диалоговом окне «Выполнить», в поле «Открыть» введите taskschd.msc и нажмите на кнопку «ОК».
Оснастка «Планировщик заданий» изображена на следующей иллюстрации:
Рис. 2. Оснастка «Планировщик заданий»
Утилита командной строки Schtasks. Утилита, которая позволяет создавать и запускать задания для программ, команд и сценариев на основании расписания. При помощи этой утилиты вы можете создавать как простые, так и сложные задания, причем они могут быть назначены на однократный поминутный запуск, а также на запуск через указанный интервал, при загрузке системы, при входе в систему, запуске службы или выполнении указанного события и прочее. Использование этой утилиты рассматривается в следующем разделе.
Возможности утилиты Schtasks.exe
Утилита командной строки SchTasks.exe позволяет выполнять те же самые операции, что и оснастка «Планировщик заданий». Эти оба средства управления назначенными заданиями взаимозаменяемы, что позволяет видеть в оснастке «Планировщик заданий» все задания, созданные при помощи утилиты командной строки SchTasks.exe и наоборот. Для того чтобы воспользоваться данным функционалом, вам нужно открыть командную строку, ввести команду Schtasks и указать подкоманды с соответствующими значениями.
Данная утилита включает в себя несколько подкоманд, что позволяет гибко управлять назначенными заданиями, а именно:
- Schtasks /Query
- Schtasks /Create
- Schtasks /Change
- Schtasks /Run
- Schtasks /End
- Schtasks /Delete
В следующем разделе вы познакомитесь с поднабором команд, предназначенным для отображения назначенных заданий на локальном или удаленном компьютере.
Отображение назначенных заданий. Команда Schtasks /Query
Используя команду Schtasks /query, вы можете просмотреть список назначенных заданий на локальном или удаленном компьютере. Синтаксис команды очень простой и удобный:
Доступны следующие параметры:
- /S. Этот параметр отвечает за удаленную систему, для которой вы хотите просмотреть список назначенных заданий. После данного параметра вам нужно указать имя компьютера или его IP-адрес. Если параметр /S не будет указан, то по умолчанию выведется список назначенных заданий для локального компьютера;
- /U. При помощи этого параметра вы можете указать учетную запись пользователя, для которого будет выполняться вывод назначенных заданий. Вы можете указывать как учетные записи пользователей, расположенных в рабочих группах, так и пользователей, которые входят в состав домена;
- /P. Используя данный параметр, вы можете указать пароль для учетной записи, указанной при помощи параметра /U. Данный параметр не обязателен. В том случае, если вы не указали пароль, но пароль применяется для указанной учетной записи, утилита командной строки запросит ввод пароля для продолжения действий;
- /FO. По умолчанию, команда /query отображает список назначенных заданий в виде таблицы со столбцами «Имя задачи», «Время следующего запуска» и «Состояние». Используя данную команду, вы можете изменить формат вывода данных. Помимо таблицы, вы можете формировать вывод данных в виде списка или файла со значениями строк разделенными запятыми (формат CSV);
- /NH. Данный параметр можно применить только в том случае, если данные команды выводятся в табличном формате. Эта команда указывает на то, что при выводе данных в таблице не будут отображаться заголовки столбцов.
- /V. Вывод данных в виде списка или файла CSV наилучшим образом сочетается с параметром /V (Verbose), что позволяет отобразить подробную информацию о каждом свойстве заданий.
- /TN. По умолчанию при использовании команды /query на экран (или в файл) выводятся все задачи, которые расположены в приложении «Планировщик заданий». Используя данный параметр, вы можете указать определённую задачу или список задач.
- /XML. Этот параметр позволяет отобразить задачи в формате XML. Пример вывода XML-данных для задачи, отвечающей за работу программы «Защитник Windwos»:
Пример 1. В данном примере назначенные задачи будут выведены для локального компьютера в виде списка с подробной информацией о каждом значении:
Рис. 3. Использование команды Schtasks /query с выводом данных в формате списка
Пример 2. В этом примере будет выведена в табличном формате без наименований столбцов задача, при выполнении которой создаются обычные точки восстановления системы:
Рис. 4. Вывод определенной задачи
команды SchTasks schtasks commands
Планирует выполнение команд и программ периодически или в определенное время, добавляет и удаляет задачи из расписания, запускает и останавливает задачи по требованию, а также отображает и изменяет запланированные задачи. Schedules commands and programs to run periodically or at a specific time, adds and removes tasks from the schedule, starts and stops tasks on demand, and displays and changes scheduled tasks.
Средство schtasks.exe выполняет те же операции, что и запланированные задачи на панели управления. The schtasks.exe tool performs the same operations as Scheduled Tasks in Control Panel. Эти инструменты можно использовать совместно и взаимозаменяемы. You can use these tools together and interchangeably.
Необходимые разрешения Required permissions
Чтобы запланировать, просмотреть и изменить все задачи на локальном компьютере, необходимо быть членом группы «Администраторы». To schedule, view, and change all tasks on the local computer, you must be a member of the Administrators group.
Чтобы запланировать, просмотреть и изменить все задачи на удаленном компьютере, необходимо быть членом группы «Администраторы» на удаленном компьютере или использовать параметр /u для предоставления учетных данных администратора удаленного компьютера. To schedule, view, and change all tasks on the remote computer, you must be a member of the Administrators group on the remote computer, or you must use the /u parameter to provide the credentials of an Administrator of the remote computer.
Параметр /u в операции /CREATE или /Change можно использовать, если локальный и удаленный компьютеры находятся в одном домене или если локальный компьютер находится в домене, которому доверяет домен удаленного компьютера. You can use the /u parameter in a /create or /change operation if the local and remote computers are in the same domain, or if the local computer is in a domain that the remote computer domain trusts. В противном случае удаленный компьютер не может проверить подлинность указанной учетной записи пользователя и не сможет проверить, является ли эта учетная запись членом группы «Администраторы». Otherwise, the remote computer can’t authenticate the user account specified, and it can’t verify that the account is a member of the Administrators group.
Задача, которую планируется запустить, должна иметь соответствующее разрешение; Эти разрешения зависят от задачи. The task you plan to run must have the appropriate permission; these permissions vary by task. По умолчанию задачи выполняются с разрешениями текущего пользователя локального компьютера или с разрешениями пользователя, заданного параметром /u , если он включен. By default, tasks run with the permissions of the current user of the local computer, or with the permissions of the user specified by the /u parameter, if one is included. o запустите задачу с разрешениями другой учетной записи пользователя или с системными разрешениями, используя параметр /ru . o run a task with permissions of a different user account or with system permissions, use the /ru parameter.