The “what’s eating my resources?” one-liners.
Top 10 by CPU
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, CPU
Top 10 by memory (working set, in MB)
Get-Process | Sort-Object WS -Descending | Select-Object -First 10 Name, Id,
@{Name='MB'; Expression={ [math]::Round($_.WS / 1MB) }}
Find a specific process
Get-Process -Name chrome
Get-Process | Where-Object Name -like '*sql*'
Kill a process
Stop-Process -Name notepad # all instances by name
Stop-Process -Id 12345 # one instance by PID
Get-Process chrome | Stop-Process # via the pipeline
Who started it? (owner / path)
Get-Process -Name powershell -IncludeUserName | Select-Object Name, Id, UserName, Path
Notes: CPU is total CPU seconds since the process started, not live %; for a live snapshot
sort by WS (memory) or use Get-Counter '\Process(*)\% Processor Time'. Stop-Process is
forceful (no save prompt) — double-check the name/PID. -IncludeUserName needs an elevated prompt.