Take full control of your CPU resources — learn every method to change process priority and squeeze out maximum performance from your system.
When your computer runs multiple programs simultaneously, the operating system must decide how to distribute CPU time across all running processes. Process priority is the mechanism Windows uses to determine which processes receive more CPU cycles — and how quickly they respond to execution requests.
Think of it like a queue at a coffee shop: higher-priority customers (processes) get served first. By adjusting priority, you can instruct Windows to favor a specific program — for example, a video render, a game, or a simulation — over background tasks like update services or antivirus scans.
Adjusting process priority makes sense in these common scenarios:
| Use Case | Recommended Action | Expected Result |
|---|---|---|
| Game running alongside background apps | Raise game to High | Smoother frame rate, lower input lag |
| Video encoding / 3D render | Raise encoder to Above Normal | Faster render while system stays usable |
| Antivirus / Windows Update slowing PC | Lower background services to Below Normal | System feels more responsive during use |
| Audio production (DAW) | Raise DAW to High | Fewer audio dropouts and buffer underruns |
| Server workload isolation | Use Real-Time (with caution) | Maximum throughput for critical process |
Windows defines six priority classes, from the highest to the lowest. Understanding each level is essential before making any changes.
| Priority Level | Numeric Value | Description | Typical Use |
|---|---|---|---|
| Real-Time | 24 | Highest possible; can starve system processes | Low-level drivers, specialized software |
| High | 13 | Runs before most other processes | Games, time-critical applications |
| Above Normal | 10 | Slightly elevated; good balance | Encoders, compilers, renders |
| Normal | 8 | Default for all standard applications | Browsers, office apps, most software |
| Below Normal | 6 | Lower than default; yields to others | Background utilities, sync tools |
| Idle (Low) | 4 | Only runs when CPU has nothing else to do | Screensavers, telemetry, disk indexers |
Task Manager is the easiest and most accessible way to set process priority on both Windows 10 and Windows 11. No commands or scripts required — just a few clicks.
Ctrl + Shift + Esc simultaneously. Alternatively, right-click the Taskbar and select Task Manager, or press Ctrl + Alt + Delete and choose it from the menu.
game.exe, handbrake.exe). You can click the Name column header to sort alphabetically.
To see the current priority of every process at a glance, you can add the Base Priority column. Right-click any column header in the Details tab, choose Select columns, and check Base priority. This gives you a clear numerical overview of all priorities.
PowerShell gives you more control and is especially useful for automation and scripting. You can change the priority of any running process by name or PID with just a single line.
Press Win + X and select Windows PowerShell (Admin) or Terminal (Admin) on Windows 11. Administrator rights are required to set certain priority levels.
Use Get-Process to find the process and .PriorityClass to assign a new level:
PowerShell — Set process priority by name
# Set a process to High priority
(Get-Process -Name "notepad").PriorityClass = "High"
# Set a process to Above Normal priority
(Get-Process -Name "handbrake").PriorityClass = "AboveNormal"
# Set a process to Below Normal priority
(Get-Process -Name "SearchIndexer").PriorityClass = "BelowNormal"
# Set a process to Idle (Low) priority
(Get-Process -Name "OneDrive").PriorityClass = "Idle"
If multiple processes share the same name, target a specific one by its PID:
PowerShell — Set process priority by PID
# First, find the PID of the process
Get-Process -Name "chrome" | Select-Object Id, Name, PriorityClass
# Then set priority using the specific PID
(Get-Process -Id 8472).PriorityClass = "High"
| Priority Level | PowerShell String Value |
|---|---|
| Real-Time | RealTime |
| High | High |
| Above Normal | AboveNormal |
| Normal | Normal |
| Below Normal | BelowNormal |
| Idle | Idle |
Get-Process | Select-Object Name, Id, PriorityClass | Sort-Object PriorityClass — this gives you a complete sorted overview instantly.
The Command Prompt offers two approaches: using wmic to change the priority of an already-running process, or using the start command to launch a new process at a specific priority level.
The start command is the cleanest CMD method — it launches an application with a specific priority from the very beginning:
CMD — Start command with priority flags
:: Launch Notepad with High priority
start /high notepad.exe
:: Launch a game with AboveNormal priority
start /abovenormal "C:\Games\mygame.exe"
:: Launch a background tool with Low (Idle) priority
start /low "C:\Tools\backup.exe"
:: Launch with BelowNormal priority
start /belownormal synctool.exe
| Priority Level | CMD Flag |
|---|---|
| Real-Time | /realtime |
| High | /high |
| Above Normal | /abovenormal |
| Normal | /normal |
| Below Normal | /belownormal |
| Idle | /low |
wmic (Windows Management Instrumentation Command-line) lets you adjust the priority of a process that is already running:
CMD — WMIC process priority (numeric values)
:: Set notepad.exe to High priority (value: 128)
wmic process where name="notepad.exe" CALL setpriority 128
:: Set a process to Above Normal (value: 32768)
wmic process where name="handbrake.exe" CALL setpriority 32768
:: Set a process to Below Normal (value: 16384)
wmic process where name="OneDrive.exe" CALL setpriority 16384
:: Set a process to Idle/Low (value: 64)
wmic process where name="SearchIndexer.exe" CALL setpriority 64
| Priority Level | WMIC Numeric Value |
|---|---|
| Real-Time | 256 |
| High | 128 |
| Above Normal | 32768 |
| Normal | 32 |
| Below Normal | 16384 |
| Idle | 64 |
By default, all priority changes made through Task Manager are temporary — they reset when the process is restarted. To permanently assign a priority level, you need to either use a scheduled task or create a startup script.
Create a .ps1 script that sets the desired priority and add it to Windows startup via Task Scheduler:
PowerShell — Persistent priority script (save as set-priority.ps1)
# Wait for the process to start, then set its priority
$processName = "mygame"
$targetPriority = "High"
while ($true) {
$proc = Get-Process -Name $processName -ErrorAction SilentlyContinue
if ($proc) {
$proc.PriorityClass = $targetPriority
Write-Host "Priority set to $targetPriority for $processName"
}
Start-Sleep -Seconds 5
}
Win + S, search for Task Scheduler, and open it.powershell.exe.-WindowStyle Hidden -File "C:\Scripts\set-priority.ps1"Setting process priority in Windows 10 and Windows 11 is a powerful but nuanced technique. Use Task Manager for quick, one-time adjustments. Reach for PowerShell or CMD when you need scripting or automation. For permanent solutions, leverage Task Scheduler or a dedicated tool like Process Lasso.
As a rule of thumb: prefer Above Normal over High for most use cases — it provides a meaningful performance boost without destabilizing your system. And always remember: never use Real-Time priority for regular applications.