Заметки о Windows и других программных продуктах Microsoft...

Установка приоритета для запланированных заданий

Установка приоритета для запланированных заданий

Недавно столкнулся с тем, что задача, запущенная из планировщика, отрабатывала в несколько раз дольше, чем при запуске вручную. Как выяснилось, у каждого задания планировщика есть собственный приоритет выполнения, согласно которому ему выделяются вычислительные ресурсы (процессорное время и память). По умолчанию этот приоритет достаточно низок, поэтому ресурсоемкие задачи могут работать гораздо медленнее, чем обычно.

Для решения этой проблемы есть несколько способов, о которых и пойдет речь дальше.

Редактирование xml-файла

Изменить приоритет выполнения задания напрямую из оснастки планировщика невозможно, но можно выгрузить задание в xml-файл и отредактировать его. Для выгрузки выбираем задание, кликаем по нему правой клавишей и выбираем пункт «Export».

экспорт задания

 

Затем открываем файл задания, находим раздел Priority и указываем желаемый приоритет. Для запланированных заданий по умолчанию устанавливается значение 7, что означает ниже среднего. Обычно для повышения приоритета достаточно указать значение 5 (выше среднего).

Примечание. Приоритет запланированного задания может принимать значение от 0 до 10, чем ниже значение, тем выше приоритет. Более подробно о приоритетах можно узнать здесь.

редактирование задания в xml-файле

 

После редактирования импортируем обратно получившееся задание. Для этого выбираем в планировщике нужную папку, кликаем по ней правой клавишей мыши и выбираем пункт «Import Task». Если вы хотите импортировать задание с тем же именем, то необходимо предварительно удалить из планировщика исходное задание.

импорт задания

 

Также можно воспользоваться утилитой командной строки schtasks. Вот так будет выглядеть команда для экспорта:

schtasks /Query /XML /TN ″MyTask″ >C:\Tasks\MyTask.xml

А импортировать задание можно командой:

schtasks /Create /TN ″MyTask″ /XML ″C:\Tasks\MyTask.xml″

Настройка приоритета с помощью PowerShell

Начиная с Windows 8\Server 2012 настроить приоритет задания можно с помощью PowerShell. Посмотреть текущий приоритет можно так:

$task = Get-ScheduledTask -TaskName ″MyTask″
$task.Settings.Priority

А изменить так:

$settings = New-ScheduledTaskSettingSet -Priority 5
Set-ScheduledTask -TaskName ″MyTask″ -Settings $settings

настройка приоритета задания в PowerShell

Групповые политики

В доменной среде для распространения запланированных задач очень удобно пользоваться групповыми политиками.

запланированное задание в GPO

 

Для таких заданий изменить приоритет можно следующим образом. Сначала в оснастке редактора групповых политик открываем нужный GPO и находим его ID.

свойства GPO

 

Затем переходим в SYSVOL, открываем директорию с групповыми политиками и находим нужную политику по ее ID.

файл групповой политики

 

Открываем найденный xml-файл и редактируем приоритет, который, также как и в случае локального задания, находится между тегами Priority.

редактирование файла групповой политики

 

Для ускорения можно пройтись по компьютерам и обновить политики командой gpupdate /force.

 
 
Комментарии

Не New-ScheduledTaskSettingSet, а New-ScheduledTaskSettingsSet — чуть не вспотел

Leave a Reply to V