Управление Планировщиком заданий с помощью schtasks.exe

  1. Обзор
  2. Обозначения переменных
  3. О переносе строк в PowerShell и CMD
  4. Step 1: Обзор подкоманд schtasks.exe
  5. Step 2: /Create – базовый синтаксис и основные параметры
    1. Step 2.1 Общий синтаксис
    2. Step 2.2 Наиболее часто используемые параметры
    3. Step 2.3 Список значений для /SC
    4. Step 2.4 Ежедневная задача
    5. Step 2.5 Запуск при входе в систему (ONLOGON)
    6. Step 2.6 Запуск при старте системы (ONSTART)
    7. Step 2.7 Триггер по событию (ONEVENT)
    8. Step 2.8 Запуск каждые 3 часа
    9. Step 2.9 Вторая среда каждого месяца
    10. Step 2.10 Последний день месяца (LASTDAY)
    11. Step 2.11 Каждые 2 недели
  6. Step 3: /Query – список и подробная информация
  7. Step 4: /Change – изменение задачи
    1. Изменение учетной записи запуска
    2. Изменение команды запуска
    3. Включение/отключение задачи
  8. Step 5: /Run (немедленный запуск) и /End (остановка)
  9. Step 6: Импорт задач из XML
    1. Импорт XML
    2. Экспорт в XML (через Query)
  10. Step 8: /Delete – удаление задачи
  11. Step 9: /ShowSid – просмотр SID учетной записи
  12. Step 10: Управление задачами на удаленном сервере
  13. Итоги

Обзор

В этой статье показано, как управлять Планировщиком заданий Windows с помощью консольной утилиты schtasks.exe, предустановленной в Windows Server и клиентских версиях Windows.

Все примеры рассчитаны на выполнение из PowerShell, а символ переноса строки в командах — обратная кавычка (`).


Обозначения переменных

Имя переменной Пример Описание
<<SERVER_NAME>> WSRV2025 Имя целевого сервера
<<ADMIN_USER>> Administrator Учетная запись, запускающая задачу
<<TASK_NAME>> DailyTempCleanup Имя задачи
<<SCRIPT_PATH>> C:\Maintenance\cleanup_temp.ps1 Выполняемый скрипт
<<LOG_PATH>> C:\Maintenance\Logs Каталог для журналов
<<BACKUP_PATH>> C:\Maintenance\Backups Каталог для архивации журналов событий

О переносе строк в PowerShell и CMD

Команды в статье предназначены для выполнения в PowerShell.

  • PowerShell: обратная кавычка (`)
  • CMD: символ «карет» (^)

Пример (PowerShell):

schtasks.exe /Create `
  /TN "Example" `
  /SC DAILY `
  /ST 02:00 `
  /TR "powershell.exe -File example.ps1"

Step 1: Обзор подкоманд schtasks.exe

Подкоманда Назначение
/Create Создание новой задачи
/Delete Удаление задачи
/Query Список задач, подробности, вывод XML
/Change Изменение параметров задачи
/Run Немедленный запуск задачи
/End Остановка выполняющейся задачи
/ShowSid Отображение SID учетной записи

Step 2: /Create – базовый синтаксис и основные параметры

Step 2.1 Общий синтаксис

schtasks.exe /Create `
  /TN "<<TASK_NAME>>" `
  /TR "<<КОМАНДА_ДЛЯ_ЗАПУСКА>>" `
  /SC РАСПИСАНИЕ `
  [другие_параметры...]

Step 2.2 Наиболее часто используемые параметры

Параметр Описание
/SC Тип расписания (DAILY / WEEKLY / MONTHLY / ONLOGON / ONEVENT)
/MO Модификатор
/ST HH:mm Время начала
/D День выполнения (1–31 или MON/TUE…)
/RU Учетная запись для запуска
/RP Пароль (* — запрос интерактивно)
/RL HIGHEST Максимальный уровень привилегий
/F Принудительная перезапись существующей задачи

О параметре /MO (модификатор)
Позволяет уточнить частоту или позицию запуска в рамках расписания.

Примеры:

  • Каждые 3 часа → /SC HOURLY /MO 3
  • Каждые 2 недели → /SC WEEKLY /MO 2
  • Вторая среда месяца → /SC MONTHLY /MO SECOND /D WED
  • Запуск по событию → /SC ONEVENT /MO [XPath]

Step 2.3 Список значений для /SC

/SC Описание
DAILY Ежедневно
WEEKLY Еженедельно
MONTHLY Ежемесячно
ONCE Однократно
ONSTART При запуске системы
ONLOGON При входе пользователя в систему
ONIDLE При простое системы
ONEVENT При событии в журнале событий

Step 2.4 Ежедневная задача

schtasks.exe /Create `
  /TN "DailyTempCleanup" `
  /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Maintenance\cleanup_temp.ps1 -DaysToKeep 7 -LogPath <<LOG_PATH>>" `
  /SC DAILY `
  /ST 02:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.5 Запуск при входе в систему (ONLOGON)

schtasks.exe /Create `
  /TN "OnLogonAudit" `
  /SC ONLOGON `
  /TR "powershell.exe -File C:\Scripts\logon_audit.ps1" `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.6 Запуск при старте системы (ONSTART)

schtasks.exe /Create `
  /TN "OnStartInit" `
  /SC ONSTART `
  /TR "powershell.exe -File C:\Scripts\startup_init.ps1" `
  /RU "SYSTEM" `
  /RL HIGHEST `
  /F

Step 2.7 Триггер по событию (ONEVENT)

schtasks.exe /Create `
  /TN "Event101Handler" `
  /SC ONEVENT `
  /EC System `
  /MO "*[System/EventID=101]" `
  /TR "powershell.exe -File C:\Scripts\event_handler.ps1" `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.8 Запуск каждые 3 часа

schtasks.exe /Create `
  /TN "Every3Hours" `
  /TR "powershell.exe -File script.ps1" `
  /SC HOURLY `
  /MO 3 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.9 Вторая среда каждого месяца

schtasks.exe /Create `
  /TN "SecondWednesdayTask" `
  /TR "powershell.exe -File task.ps1" `
  /SC MONTHLY `
  /MO SECOND `
  /D WED `
  /ST 03:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.10 Последний день месяца (LASTDAY)

schtasks.exe /Create `
  /TN "LastDayMonthly" `
  /TR "powershell.exe -File script.ps1" `
  /SC MONTHLY `
  /MO LASTDAY `
  /M * `
  /ST 01:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.11 Каждые 2 недели

schtasks.exe /Create `
  /TN "Every2Weeks" `
  /TR "powershell.exe -File script.ps1" `
  /SC WEEKLY `
  /MO 2 `
  /D MON `
  /ST 05:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 3: /Query – список и подробная информация

Параметр Описание
/FO TABLE Вывод в табличном формате
/FO LIST Вывод в виде списка по полям
/V Подробная информация (триггеры, действия и т. д.)
/TN "<<TASK_NAME>>" Показать только указанную задачу
schtasks.exe /Query /FO TABLE
schtasks.exe /Query /FO LIST /V
schtasks.exe /Query /TN "<<TASK_NAME>>" /FO LIST /V

Step 4: /Change – изменение задачи

Параметр Описание
/TN Имя задачи
/RU Изменить учетную запись запуска
/RP * Ввести новый пароль интерактивно
/TR Заменить команду запуска
/ENABLE /DISABLE Включить / отключить задачу

Важно: /Change не позволяет изменять параметры триггера (/SC, /MO, /D, /M).
Если нужно изменить расписание, безопаснее удалить задачу через /Delete и создать заново через /Create.

Изменение учетной записи запуска

schtasks.exe /Change `
  /TN "<<TASK_NAME>>" `
  /RU "<<ADMIN_USER>>" `
  /RP *

Изменение команды запуска

schtasks.exe /Change `
  /TN "<<TASK_NAME>>" `
  /TR "powershell.exe -File <<SCRIPT_PATH>> -LogPath <<LOG_PATH>>"

Включение/отключение задачи

schtasks.exe /Change /TN "<<TASK_NAME>>" /ENABLE
schtasks.exe /Change /TN "<<TASK_NAME>>" /DISABLE

Step 5: /Run (немедленный запуск) и /End (остановка)

Параметр Описание
/Run Немедленный запуск задачи
/I Игнорировать ограничения расписания (дата начала/окончания и др.)
/End Остановить выполняющуюся задачу
/TN Имя целевой задачи
schtasks.exe /Run /TN "<<TASK_NAME>>"
schtasks.exe /Run /TN "<<TASK_NAME>>" /I

schtasks.exe /End /TN "<<TASK_NAME>>"

Step 6: Импорт задач из XML

Импорт XML

Параметр Описание
/XML файл Создать задачу по XML-описанию
/RU Переопределить учетную запись запуска
/RP * Ввести пароль интерактивно
schtasks.exe /Create `
  /TN "<<TASK_NAME>>" `
  /XML "C:\TaskTemplates\<<TASK_NAME>>.xml" `
  /RU "<<ADMIN_USER>>" `
  /RP *

Экспорт в XML (через Query)

Параметр Описание
/XML ONE Вывести описание задачи в виде одного XML
> имя_файла Перенаправить вывод в файл
schtasks.exe /Query `
  /TN "<<TASK_NAME>>" `
  /XML ONE `
  > C:\TaskTemplates\<<TASK_NAME>>.xml

Step 8: /Delete – удаление задачи

Параметр Описание
/Delete Режим удаления
/TN Имя задачи
/F Удаление без подтверждения
schtasks.exe /Delete /TN "<<TASK_NAME>>" /F

Step 9: /ShowSid – просмотр SID учетной записи

Параметр Описание
/ShowSid Отобразить SID учетной записи, связанной с задачей
/TN Имя задачи
schtasks.exe /ShowSid /TN "<<TASK_NAME>>"

Step 10: Управление задачами на удаленном сервере

Параметр Описание
/S "<<SERVER_NAME>>" Имя удаленного сервера
/U Учетная запись для подключения к удаленному серверу
/P * Пароль удаленной учетной записи (* — интерактивный ввод)
Остальное Определение задачи такое же, как для локальной системы
schtasks.exe /Create `
  /S "<<SERVER_NAME>>" `
  /U "<<ADMIN_USER>>" `
  /P * `
  /TN "<<TASK_NAME>>" `
  /TR "powershell.exe -File <<SCRIPT_PATH>>" `
  /SC DAILY `
  /ST 02:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Итоги

Использование schtasks.exe упрощает интеграцию Планировщика заданий в сценарии развертывания и операционной автоматизации.

  • Комбинация /SC и /MO позволяет настраивать гибкие расписания (ежедневные, еженедельные, ежемесячные, «каждый n-й день недели», последний день месяца).
  • Триггеры ONLOGON, ONSTART и ONEVENT позволяют строить автоматизацию, зависящую от событий.
  • Пара /Query /XML и /Create /XML дает возможность экспортировать и импортировать определения задач как XML-шаблоны.
  • Команды /Change, /Run, /End, /Delete и /ShowSid покрывают полный цикл администрирования задач.
  • С помощью /S /U /P можно легко тиражировать одни и те же определения задач на несколько удаленных серверов.