Обзор
В этой статье показано, как управлять Планировщиком заданий 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 можно легко тиражировать одни и те же определения задач на несколько удаленных серверов.