Skip to main content

PowerShell - Kill a Suspended Process on Windows


The powershell cmdlet get-process* does not give you the option to query for processes that are in a specific state. I needed to kill suspended chrome instance left behind by puppetteer ( the web automation library)

# Get the pids for all open chrome isntances
$chromeProcesses = (Get-Process chrome).Id
# Loop through each
$chromeProcesses | ForEach-Object {
# assign the id for later use
$processId = $_
# check its status by calling into the .Net Diagnostics namespace.
$process=[System.Diagnostics.Process]::GetProcessById($_)
$threads=$process.Threads
foreach($thread in $threads) {
if($thread.WaitReason -eq 'Suspended') {
# command to kill the process if it's status is suspended
Get-Process chrome | Where-Object {$_.id -eq $processId} | kill -Force
}
}
}
Last updated on