Nadat je programma’s of tools hebt verwijderd die je niet meer nodig hebt, kunnen er nog steeds services in Windows aanwezig zijn. Soms worden ze gewoon uitgeschakeld, maar blijven ze in het register staan. Dat is geen probleem, tenzij ze problemen gaan veroorzaken of je lijst met services onoverzichtelijk maken. Het geeft een vreemd gevoel van voldoening om ze definitief te verwijderen, maar het is niet altijd even makkelijk. Je moet vaak aan de slag met opdrachten en registeraanpassingen, en als je niet voorzichtig bent, kun je je systeem beschadigen. Deze handleiding helpt je bij het netjes verwijderen van een hardnekkige service met behulp van ingebouwde Windows-tools zoals CMD, PowerShell en enkele aanpassingen in het register. Het is verstandig om de service eerst uit te schakelen om te zien of dat voldoende is, voordat je hem volledig verwijdert. Bij één systeem werkte het na een herstart, bij een ander moest ik een aantal registersleutels opsporen. Windows maakt het natuurlijk altijd iets ingewikkelder dan nodig. Maar goed, weten hoe je van die stille, ongebruikte services afkomt, kan systeembronnen besparen en je systeem netjes houden. En ja, wees voorzichtig: het verwijderen van de verkeerde service kan problemen veroorzaken. Maak altijd een back-up van het register of de instellingen voordat u grote wijzigingen aanbrengt.
Hoe verwijder je een Windows-service op de juiste manier?
Oplossing 1: Schakel de service uit en controleer de afhankelijkheden.
Dit is de veiligste manier om te beginnen. Door een service eerst uit te schakelen, voorkom je onbedoelde systeemproblemen. Als een service niet nodig is, kun je de automatische start ervan blokkeren en de service tijdelijk stoppen. Zo kun je controleren of je de service later veilig kunt verwijderen. Gebruik hiervoor PowerShell. Bijvoorbeeld om de service met de naam stunnel uit te schakelen :
Set-Service stunnel -StartupType Disabled
en stop het dan meteen:
Stop-Service stunnel
Dit helpt je te zien of het stoppen van de service problemen veroorzaakt of dat deze daadwerkelijk niet wordt gebruikt. Op sommige machines kan deze methode er zelfs voor zorgen dat de service na een herstart niet meer opnieuw opstart. Controleer voordat je een service verwijdert welke andere services ervan afhankelijk zijn; soms is het verwijderen van een service die afhankelijk is van andere services geen goed idee.
Get-Service stunnel -DependentServices
Dit geeft een lijst terug van wat afhankelijk is van stunnel. Als er afhankelijkheden zijn, is het wellicht verstandig om deze eerst uit te schakelen of opnieuw te configureren.
Oplossing 2: Stop de service voordat u deze verwijdert.
Zodra u er zeker van bent dat het veilig is, kunt u de service volledig stoppen om te voorkomen dat er processen actief blijven. U kunt dit doen in de Services-interface door de service te selecteren en op ‘Stoppen’ of ‘Uitvoeren’ te klikken.
net stop stunnel
Deze opdracht is eenvoudig en werkt in de opdrachtprompt. Het belangrijkste is om de service eerst te stoppen; Windows staat het verwijderen van een actieve service niet toe. Nadat je de service hebt gestopt, kun je de betreffende servicevermelding verwijderen.
Oplossing 3: Maak een back-up van de registerinstellingen
Omdat services in principe gewoon registervermeldingen zijn, is het verstandig om de huidige configuratie te exporteren voordat u ze verwijdert. Navigeer in de Register-editor ( regedit ) naar HKLM\SYSTEM\CurrentControlSet\Services of gebruik een opdracht zoals:
reg export "HKLM\SYSTEM\CurrentControlSet\Services\stunnel" "%HOMEPATH%\Documents\stunnel_backup.reg" /y
Hiermee wordt een back-upbestand in uw map Documenten aangemaakt, voor het geval dat. Mocht er iets misgaan, dan kunt u het in geval van nood snel herstellen.
Oplossing 4: Verwijder de service
Gebruik nu sc.exe om de service te verwijderen:
sc delete stunnel
Als de servicenaam spaties bevat, zorg er dan voor dat u deze tussen aanhalingstekens plaatst, bijvoorbeeld: [SC] DeleteService SUCCESSsc delete "My Service". Als het gelukt is, ziet u: [SC] DeleteService SUCCESS. Soms geeft Windows echter een bericht weer zoals “De service is gemarkeerd voor verwijdering”, wat aangeeft dat de verwijdering is gepland, maar dat een herstart of het handmatig sluiten van handles nodig kan zijn.
Als alternatief kunt u dit op afstand doen — bijvoorbeeld als de service op een andere machine draait — door het volgende commando uit te voeren:
sc \\m-fs01 stop ServiceName1 sc \\m-fs01 delete ServiceName1
Dit gaat ervan uit dat u de juiste machtigingen hebt en dat toegang op afstand is ingeschakeld.
Oplossing 5: Gebruik PowerShell en WMI (als sc.exe niet voldoende is)
PowerShell is een stapje hoger. Als je PowerShell Core (versie 6 of hoger) gebruikt, kun je Remove-Service gebruiken :
Remove-Service stunnel
Maar in Windows PowerShell 5.1 is die optie er niet, dus moet je WMI gebruiken. Zo doe je dat:
$service = Get-WmiObject -Class Win32_Service -Filter "Name='stunnel'" $service. Uninstall()
De tweede regel kan lastig zijn, maar het is een prima alternatief. Houd er rekening mee dat je soms de registersleutel direct moet verwijderen, vooral als de service blijft draaien:
Remove-Item "HKLM:\SYSTEM\CurrentControlSet\Services\stunnel" -Recurse -Force
Hiermee wordt de service volledig verwijderd. Controleer voor de verwijdering de DisplayName en ImagePath in het register nogmaals goed – je wilt immers niet per ongeluk het verkeerde item verwijderen.
Na het verwijderen, vergeet niet Windows opnieuw op te starten. Soms wordt de service nog steeds weergegeven omdat het systeem niet is vernieuwd. Controleer na het opnieuw inloggen in services.msc of de service echt verdwenen is. Ruim indien nodig ook de programmaprogrammabestanden en uitvoerbare bestanden op.
Soms blijft een service na verwijdering via CMD of PowerShell gemarkeerd staan voor verwijdering, totdat de computer opnieuw wordt opgestart. In die gevallen taskkill /F /PIDkan het geforceerd verwijderen van het proces via de opdrachtprompt of het beëindigen ervan in Taakbeheer, gevolgd door het verwijderen van de registersleutel, de opruiming versnellen.