Командлет New-ScheduledTaskSettingsSet
New-ScheduledTaskSettingsSet — это командлет командной оболочки Windows PowerShell, входящий в модуль ScheduledTasks, который предназначен для создания объекта, содержащего набор параметров настройки задачи планировщика Windows. Данный объект не создаёт и не изменяет саму задачу, а лишь формирует конфигурацию, которая затем может быть передана другим командлетам, таким как Register-ScheduledTask или Set-ScheduledTask, для применения к конкретной задаче. Командлет впервые появился в Windows 8 и Windows Server 2012 вместе с модулем ScheduledTasks версии 1.0.0.0.
Синтаксис и параметры
Командлет New-ScheduledTaskSettingsSet имеет один синтаксический набор (Default), в котором все параметры являются именованными. Общий вид команды:
`` New-ScheduledTaskSettingsSet [[-AllowStartIfOnBatteries] <Boolean>] [[-Compatibility] <CompatibilityEnum>] [[-DeleteExpiredTaskAfter] <TimeSpan>] [[-DisallowStartOnRemoteAppSession] <Boolean>] [[-DisallowStartIfOnBatteries] <Boolean>] [[-DontStopIfGoingOnBatteries] <Boolean>] [[-DontStopOnIdleEnd] <Boolean>] [[-ExecutionTimeLimit] <TimeSpan>] [[-Hidden] <Boolean>] [[-IdleDuration] <TimeSpan>] [[-IdleRestart] <Boolean>] [[-IdleWaitTimeout] <TimeSpan>] [[-MaintenanceExclusive] <Boolean>] [[-MaintenancePeriod] <TimeSpan>] [[-MaintenanceRandomDelay] <TimeSpan>] [[-MultipleInstances] <MultipleInstancesEnum>] [[-NetworkProfileId] <String>] [[-NetworkUnavailable] <Boolean>] [[-Priority] <Int32>] [[-RestartCount] <Int32>] [[-RestartInterval] <TimeSpan>] [[-RunOnlyIfIdle] <Boolean>] [[-RunOnlyIfNetworkAvailable] <Boolean>] [[-StartWhenAvailable] <Boolean>] [[-StopIfGoingOnBatteries] <Boolean>] [[-TaskInstancesPolicy] <TaskInstancesPolicyEnum>] [[-Volatile] <Boolean>] [<CommonParameters>] ``
Основные параметры
- AllowStartIfOnBatteries — разрешает запуск задачи при работе компьютера от батарей. Значение по умолчанию —
$true. - Compatibility — задаёт уровень совместимости задачи с версиями операционной системы. Принимает значения из перечисления
CompatibilityEnum:AT,V1,V2,V2_1,V2_2,V2_3,V2_4,Win8,Win10. - DeleteExpiredTaskAfter — определяет временной интервал, по истечении которого планировщик автоматически удалит задачу после её окончания. Тип —
TimeSpan. - DisallowStartOnRemoteAppSession — запрещает запуск задачи в сеансе удалённого приложения RemoteApp.
- DisallowStartIfOnBatteries — запрещает запуск задачи при питании от батарей. Отличается от
AllowStartIfOnBatteriesлогикой обработки. - DontStopIfGoingOnBatteries — не останавливать задачу при переходе на питание от батарей.
- DontStopOnIdleEnd — не останавливать задачу, если компьютер выходит из режима простоя.
- ExecutionTimeLimit — максимальное время выполнения задачи. Тип
TimeSpan. Значение по умолчанию — 72 часа для обычных задач, 1 час для задач с триггерами по событиям. - Hidden — скрывает задачу в интерфейсе планировщика задач.
- IdleDuration — минимальная продолжительность простоя, необходимая для запуска задачи. Используется с параметром
RunOnlyIfIdle. - IdleRestart — перезапускать задачу при возобновлении простоя после выхода из него.
- IdleWaitTimeout — максимальное время ожидания простоя перед запуском задачи.
- MaintenanceExclusive — указывает, что задача должна выполняться исключительно в рамках периода обслуживания.
- MaintenancePeriod — периодичность автоматического обслуживания задачи.
- MaintenanceRandomDelay — случайная задержка перед запуском задачи обслуживания.
- MultipleInstances — определяет поведение при попытке запуска новой копии задачи, когда предыдущая ещё выполняется. Принимает значения из перечисления
MultipleInstancesEnum:IgnoreNew,Parallel,Queue,StopExisting. - NetworkProfileId — идентификатор сетевого профиля (GUID), при котором разрешён запуск задачи.
- NetworkUnavailable — разрешает запуск задачи при недоступности сети.
- Priority — приоритет процесса задачи в диапазоне от 0 (наивысший) до 10 (наинизший). Значение по умолчанию — 7.
- RestartCount — количество попыток перезапуска задачи в случае сбоя.
- RestartInterval — интервал между попытками перезапуска.
- RunOnlyIfIdle — запускать задачу только при простое компьютера.
- RunOnlyIfNetworkAvailable — запускать задачу только при наличии сетевого подключения.
- StartWhenAvailable — запускать задачу при первой возможности, если пропущен запланированный момент.
- StopIfGoingOnBatteries — останавливать задачу при переходе на питание от батарей.
- TaskInstancesPolicy — политика экземпляров задачи (устаревший параметр, заменён на
MultipleInstances). - Volatile — делает задачу энергозависимой: после перезагрузки системы задача не сохраняется, если не была изменена.
Возвращаемое значение
Командлет возвращает объект типа Microsoft.Management.Infrastructure.CimInstance, представляющий класс MSFT_TaskSettings из пространства имён Root/Microsoft/Windows/TaskScheduler. Этот объект содержит все указанные настройки и может быть передан по конвейеру другим командлетам.
Примеры использования
Создание базового набора настроек
`` $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries $true -StartWhenAvailable $true ``
Данная команда создаёт объект настроек, разрешающий запуск задачи от батарей и отложенный запуск при пропуске времени.
Создание настроек с ограничением времени выполнения
`` $settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Hours 4) ``
Устанавливает максимальное время выполнения задачи в 4 часа.
Создание настроек для задачи обслуживания
`` $settings = New-ScheduledTaskSettingsSet -MaintenancePeriod (New-TimeSpan -Days 7) -MaintenanceExclusive $true ``
Настраивает задачу на еженедельное обслуживание с исключительным доступом.
Передача настроек при регистрации задачи
`` $action = New-ScheduledTaskAction -Execute "C:\Scripts\backup.ps1" $trigger = New-ScheduledTaskTrigger -Daily -At 3am $settings = New-ScheduledTaskSettingsSet -DontStopIfGoingOnBatteries $true -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 10) Register-ScheduledTask -TaskName "DailyBackup" -Action $action -Trigger $trigger -Settings $settings ``
В этом примере создаётся ежедневная задача резервного копирования с настройками: не останавливать при переходе на батареи, при сбое перезапускать до 3 раз с интервалом 10 минут.
Ограничения и особенности
- Командлет работает только в Windows PowerShell (версии 4.0 и выше) и PowerShell Core (начиная с версии 6.0) на платформах Windows.
- Параметр
TaskInstancesPolicyсчитается устаревшим и не рекомендуется к использованию; вместо него следует применятьMultipleInstances. - Параметр
Priorityпринимает значения от 0 до 10, где 0 — наивысший приоритет (реального времени), 7 — нормальный, 10 — наинизший. Значения ниже 4 требуют прав администратора. - Параметр
Compatibilityвлияет на то, какие возможности планировщика доступны задаче. Например,ATобеспечивает совместимость с планировщиком задач Windows NT 4.0, аWin10— с новейшими функциями Windows 10/11. - Параметр
Volatileполезен для временных задач, которые не должны переживать перезагрузку системы, но требует осторожности: при сбое питания задача может быть потеряна.
Связанные командлеты
- Get-ScheduledTask — получение информации о зарегистрированных задачах.
- Register-ScheduledTask — регистрация новой задачи с указанными настройками.
- Set-ScheduledTask — изменение существующей задачи.
- New-ScheduledTaskAction — создание действия задачи.
- New-ScheduledTaskTrigger — создание триггера задачи.
- New-ScheduledTaskPrincipal — создание учётной записи для выполнения задачи.
Источники
- Документация Microsoft: «New-ScheduledTaskSettingsSet» (ScheduledTasks module)
- Windows PowerShell SDK: класс MSFT_TaskSettings
- TechNet: «Task Scheduler Cmdlets in Windows PowerShell»
- Windows 10/11 Task Scheduler Technical Reference
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →