Открыть сервис

Register-ScheduledTask

Register-ScheduledTask — это встроенная команда (командлет) в среде командной оболочки Windows PowerShell, предназначенная для программного создания и регистрации новой задачи в Планировщике задач (Task Scheduler) операционной системы Windows. Командлет входит в модуль ScheduledTasks, который предоставляет интерфейс для управления задачами из командной строки или сценариев. Основная функция — автоматизация настройки заданий, выполняющихся по расписанию, при запуске системы, по событию или при других условиях.

Синтаксис и основные параметры

Командлет Register-ScheduledTask имеет несколько синтаксических вариантов, позволяющих задавать параметры задачи разными способами. Основной синтаксис выглядит следующим образом:

`` Register-ScheduledTask [-Action] <CimInstance[]> [-TaskName] <String> [[-TaskPath] <String>] [[-Description] <String>] [-Settings <CimInstance>] [-Trigger <CimInstance[]>] [-Principal <CimInstance>] [-AsJob] [-CimSession <CimSession[]>] [-Force] [-Password <SecureString>] [-RunLevel <String>] [-ThrottleLimit <Int32>] [-User <String>] [-CommonParameters>] ``

Ключевые параметры

Процесс создания задачи

Регистрация задачи командлетом Register-ScheduledTask обычно выполняется в несколько шагов — сначала создаются объекты для действий, триггеров и настроек, после чего они передаются командлету.

1. Создание действия задачи

Действие задачи описывается с помощью командлета New-ScheduledTaskAction. Наиболее распространённые типы действий:

``powershell $Action = New-ScheduledTaskAction -Execute "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Argument "-File "C:\Scripts\backup.ps1"" ``

2. Создание триггера задачи

Триггер определяется командлетом New-ScheduledTaskTrigger. Поддерживаются различные типы триггеров:

``powershell $Trigger = New-ScheduledTaskTrigger -Daily -At "03:00AM" ``

Можно создать массив триггеров, если задача должна запускаться по нескольким условиям.

3. Настройка параметров задачи

Командлет New-ScheduledTaskSettingsSet создаёт объект с настройками задачи:

``powershell $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -MultipleInstances IgnoreNew ``

4. Указание субъекта (учётной записи)

Субъект для выполнения задачи создаётся с помощью New-ScheduledTaskPrincipal:

``powershell $Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest ``

Здесь "SYSTEM" — встроенная системная учётная запись. Можно использовать доменные или локальные учётные записи, указав имя пользователя.

5. Регистрация задачи

После подготовки всех объектов выполняется вызов Register-ScheduledTask:

``powershell Register-ScheduledTask -TaskName "DailyBackup" -TaskPath "\MyTasks" -Action $Action -Trigger $Trigger -Settings $Settings -Principal $Principal -Force ``

Эта команда создаст задачу с именем DailyBackup в папке `\MyTasks\), которая ежедневно в 3:00 будет запускать PowerShell с указанным скриптом от имени системы с наивысшими привилегиями.

Примеры использования

Пример 1: Простая задача с запуском блокнота

``powershell $Action = New-ScheduledTaskAction -Execute "notepad.exe" $Trigger = New-ScheduledTaskTrigger -Once -At "2025-03-01T10:00:00" Register-ScheduledTask -TaskName "LaunchNotepad" -Action $Action -Trigger $Trigger -User "SYSTEM" ``

Пример 2: Еженедельная задача с несколькими действиями

``powershell $Action1 = New-ScheduledTaskAction -Execute "C:\Backup\full.bat" $Action2 = New-ScheduledTaskAction -Execute "C:\Backup\compress.ps1" $Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday, Friday -At "02:00AM" $Settings = New-ScheduledTaskSettingsSet -StartWhenAvailable Register-ScheduledTask -TaskName "WeeklyBackupSet" -Action @($Action1, $Action2) -Trigger $Trigger -Settings $Settings -Force ``

Пример 3: Задача, выполняющаяся при запуске системы

``powershell $Action = New-ScheduledTaskAction -Execute "C:\Tools\monitor.exe" $Trigger = New-ScheduledTaskTrigger -AtStartup Register-ScheduledTask -TaskName "SystemMonitor" -Action $Action -Trigger $Trigger -RunLevel Highest ``

Ошибки и особенности

Права администратора

Для создания задачи с повышенными привилегиями (например, запуск от имени системы или с правами администратора) требуется запуск PowerShell от имени администратора. Если задача создаётся от обычного пользователя, уровень привилегий будет ограничен.

Перезапись задачи

Без параметра -Force регистрация задачи с именем, которое уже существует, вызовет ошибку Microsoft.PowerShell.Cmdletization.Cim.CimJobException. Для модификации существующей задачи следует использовать командлет Set-ScheduledTask.

Учётные записи и пароли

При указании параметра -User необходимо передавать пароль через -Password в виде защищённой строки SecureString. Для системных учётных записей (SYSTEM, LOCAL SERVICE, NETWORK SERVICE) пароль не требуется.

Применение

Командлет Register-ScheduledTask широко используется в среде системного администрирования для автоматизации рутинных операций. На его основе создаются сценарии развёртывания (деплоя) программного обеспечения, задачи резервного копирования, мониторинга, очистки журналов, а также настройка автоматических обновлений. Команда также входит в состав инструментов для управления конфигурациями, таких как System Center Configuration Manager (SCCM) и PowerShell Desired State Configuration (DSC).

Связанные командлеты

Модуль ScheduledTasks содержит полный набор командлетов для управления задачами:

Источники

  1. Документация Microsoft PowerShell — командлет Register-ScheduledTask (ScheduledTasks модуль).
  2. Справочник по командлетам Windows PowerShell для Windows Server и Windows 10/11.
  3. Официальное руководство по управлению задачами в Windows с помощью PowerShell (Microsoft Learn).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →