Изменение приоритета процессов Windows через PowerShell

В современных операционный системах семейства Windows можно динамически изменить приоритет процессов, чтобы  таким образом управлять загрузкой процессора. Самый простой пример — какое-то приложение перегружает систему.  Вы можете снизить приоритет этой программы, а важные задачи при этом, наоборот — ускорить.

▪️ Просмотр приоритетов процессов. Для того, чтобы увидеть текущие приоритеты всех запущенных процессов в ОС Windows 11, выполните команду:

Get-WmiObject Win32_Process | Select-Object Name, ProcessId, Priority | Sort-Object Priority -Descending

Приоритет отображается числом:

256 — Реального времени (RealTime)
128 — Высокий (High)
32 — Выше нормального (AboveNormal)
8 — Обычный (Normal)
4 — Ниже нормального (BelowNormal)
1 — Фоновый (Idle)

▪️ Изменение приоритета процесса. Чтобы повысить приоритет процесса (например, notepad.exe) до Высокого (High), нужно выполнить такую команду:

(Get-Process notepad).PriorityClass = "High"

Если процессу нужно снизить нагрузку, до «Ниже нормального» (BelowNormal), выполните такую команду:

(Get-Process notepad).PriorityClass = "BelowNormal"

▪️ Изменение приоритета по PID. Если вы знаете идентификатор процесса (PID), то можно изменить его приоритет напрямую:

(Get-Process -Id 1234).PriorityClass = "AboveNormal"

▪️ Автоматическое изменение приоритета. Вы всегда можете сделать PowerShell-скрипт, который будет снижать приоритет ресурсоёмких процессов.  Пример lkz chrome.exe:

$processes = Get-Process chrome -ErrorAction SilentlyContinue 
if ($processes) { 
$processes | ForEach-Object { $_.PriorityClass = "BelowNormal" } 
}

Далее просто добавим этот скрипт в Планировщик заданий (Task Scheduler), чтобы он запускался автоматически при старте системы.

▪️ Изменение приоритета через WMI. Если Get-Process не срабатывает, можно использовать WMI:

(Get-WmiObject Win32_Process -Filter "Name='notepad.exe'").SetPriority(128)

Здесь 128 — это High, 8 — Normal, 4 — BelowNormal и т. д.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *