PowerShell Script to remove Intel Killer Performance Suite (KPS)
KPS adversely affects networking performance and is not necessary for proper operation under Windows. It is difficult to remove, but it can be disabled, hence this script. I wrote this because the KPS interferes with the Virtual Desktop VR application.
Usage
- Click Start
- Type “PowerShell” and choose “Open as administrator”
- To run this, enter: .\killer-killer.ps1
About KPS
The KPS driver is an optional update that can be installed via:
Settings > Windows Update > Advanced options > Optional updates
It appears as a generic SoftwareComponent
entry, like this:
Intel Corporation - SoftwareComponent - 3.1523.1205.1
KPS has that version number or a later one that is similar.
You can avoid it coming back by omitting this particular
SoftwareComponent
when installing optional updates.
killer-killer.ps1
###################################################################
#
# PowerShell Script to remove Intel Killer Performance Suite (KPS)
#
# Written by @Morganizer in the Virtual Desktop Server in Discord
# (https://discord.com/invite/uFkthdPH)
#
# *** MUST BE RUN FROM WINDOWS POWERSHELL AS ADMINISTRATOR ***
#
# 1. Click Start
# 2. Type "PowerShell" and choose "Open as administrator"
# 3. To run this, enter: .\killer-killer.ps1
#
# KPS adversely affects networking performance and is not necessary
# for proper operation under Windows. It is difficult to remove,
# but it can be disabled, hence this script.
#
# The KPS driver is an optional update that can be installed via:
#
# Settings > Windows Update > Advanced options > Optional updates
#
# It appears as a generic "SoftwareComponent" entry, like this:
#
# "Intel Corporation - SoftwareComponent - 3.1523.1205.1"
#
# KPS has that version number or a later one that is similar.
# You can avoid it coming back by omitting this particular
# SoftwareComponent when installing optional updates.
#
# Get all services related to Intel Killer Performance Suite
$services = Get-Service | Where-Object { $_.DisplayName -like "Killer *" }
# Check if any services were found
if ($services.Count -eq 0) {
Write-Host "No Killer Performance Suite services are currently running."
} else {
# Stop each service, disable it, and remove it
foreach ($service in $services) {
Write-Host "Working on service '$($service.DisplayName)' ..."
Write-Host " ... Stopping '$($service.Name)'"
Stop-Service -Name $service.Name -Force
Write-Host " ... Disabling '$($service.Name)'"
Set-Service -Name $service.Name -StartupType Disabled
Write-Host " ... Removing '$($service.ServiceName)'"
C:\Windows\System32\sc.exe delete "$($service.ServiceName)"
}
Write-Host "All Killer Performance Suite services stopped and disabled."
}
#
# OPTIONAL: Remove the RivetNetworks directory (contains Killer subdirectory)
#
# *** REMOVE THE # BEFORE Remove-Item BELOW TO ENABLE THIS! ***
# Edit this path if different on your system
$driver = "C:\Windows\System32\drivers\RivetNetworks"
# Check if the directory exists before attempting to remove it
if (Test-Path $driver) {
Write-Host "Removing $($driver) directory..."
#Remove-Item -Path $driver -Recurse -Force
# Check if the directory still exists after removal
if (Test-Path $driver) {
Write-Host "Directory $($driver) still exists."
Write-Host "If failed due to open files, restart and run this again, or delete it manually."
} else {
Write-Host "Directory $($driver) successfully removed."
}
} else {
Write-Host "The directory $($driver) does not exist. Skipping removal."
}