Misschien ben je lekker aan het werk op een externe Windows-server en merk je dat een proces fout gaat en waardevolle CPU-cycli verbruikt. Wat doe je dan? Dood het!
In deze tutorial leer je hoe je een Windows-proces kunt beëindigen met behulp van native hulpprogramma’s, hulpprogramma’s van derden en PowerShell. Je leert eerst hoe je de lopende processen in Windows kunt bekijken en vervolgens hoe je deze processen kunt beëindigen.
Vereisten
Als je de stappen in deze tutorial wilt volgen, zorg er dan voor dat je het volgende alvast hebt:
- A Windows PC – All demos in this tutorial will use Windows 10, but Windows 7+ will work also.
- A Windows Server or another Windows desktop to use as your target for killing the remote tasks. This tutorial uses a standalone Windows Server 2016 as the remote server.
- De Sysinternals Suite van Microsoft.
- Windows PowerShell 5 of hoger. Deze tutorial maakt gebruik van PowerShell v7.1.3
Opvragen van externe Windows-processen met Tasklist
Sinds Windows XP is er een handig hulpprogramma genaamd tasklist. Tasklist is een handig hulpprogramma waarmee je processen op externe computers kunt opvragen. Voordat je een proces kunt beëindigen, moet je ze eerst ontdekken!
Open een PowerShell-sessie of opdrachtprompt op je desktop en typ de volgende opdracht om alle lopende processen op je externe computer weer te geven.
De onderstaande opdracht vraagt een externe computer op (/S
) en verifieert de verbinding met de beheerdersgebruikersnaam (/U
) en wachtwoord (/P
).
Je zult hieronder merken dat de Sessienaam niet verschijnt. Omdat je tasklist
op een externe computer uitvoert, levert tasklist
de Sessienaam niet.

Misschien geef je er de voorkeur aan om slechts één proces te vermelden. Geen probleem. Om dat te doen, specificeer de /FI
-parameter. De /FI
-parameter accepteert een query die aan tasklist
wordt doorgegeven om specifieke processen uit te filteren.

Het opvragen van externe Windows-processen met PSList
Nog een tool om lopende processen te bekijken is PSList, en dit hulpprogramma maakt deel uit van de Sysinternals Suite. Deze suite van tools bestaat al vele jaren en is gemaakt door Mark Russinovich, CTO van Azure!
Laten we beginnen met hoe je lopende processen op een externe computer kunt bekijken.
1. Open een PowerShell-sessie of een opdrachtprompt op je desktop en wijzig de directory naar waar je de Sysinternal Suite hebt uitgepakt.
2. Voer in je PowerShell-sessie de volgende opdracht uit om de lopende processen op de externe computer en het bijbehorende CPU-gebruik in realtime weer te geven.
De onderstaande opdracht voert pslist
uit om alle externe Windows-processen op de computer WIN-BANGJIEFNOC
te bevragen, waarbij de gebruikersnaam Administrator
(-u
) en wachtwoord (-p
) worden geauthenticeerd.
De opdracht maakt gebruik van de -s
-schakelaar, waarmee pslist
wordt omgezet in de “taakbeheermodus” die de lijst herhaaldelijk bijwerkt.
Als dit de eerste keer is dat u een tool van Sysinternals gebruikt, kan er een banner verschijnen waarin u wordt gevraagd de EULA te accepteren; klik op OK.
U ziet nu de volgende uitvoer na het uitvoeren van die opdracht; voor dit artikel zijn drie van deze waarden relevant. Zoals hieronder weergegeven.
- Naam: De naam van het proces.
- Pid: Procesidentificatie, een kritieke waarde die in deze handleiding wordt gebruikt, het PID-nummer kan worden gebruikt om een extern proces te beëindigen. Het is het numerieke ID dat aan een proces is toegewezen.
- CPU: Dit toont bijna in realtime het gebruik van uw beschikbare CPU.
De andere waarden hebben betrekking op geheugen en vallen buiten het bereik van dit artikel.

3. Aangezien stap twee de -s
-schakelaar gebruikte, drukt u op Ctrl-C om pslist
af te sluiten en terug te keren naar de console.
Beperk de lijst met teruggegeven processen door de
-e
-schakelaar te gebruiken, gevolgd door de procesnaam, bijv.-e Winlogon
.
Het Doden van Processen op Naam met PSKill
Eens je weet hoe je externe processen kunt vinden, laten we nu zien hoe je ze kunt beëindigen. Laten we eerst de pskill hulpprogramma behandelen. Leer eerst hoe je processen kunt beëindigen op basis van de procesnaam.
1. Zorg ervoor dat je een proces hebt dat je kunt beëindigen op je externe server. Deze handleiding zal het notepad-proces gebruiken.
2. Open een PowerShell-sessie of opdrachtprompt op je lokale desktop en verander de map naar waar je de Sysinternals Suite hebt uitgepakt en voer de volgende opdracht uit. Je kunt zien dat de syntax voor pskill
vergelijkbaar is met die van pslist
.

3. Voer nu pslist
uit, zoals uitgelegd in de vorige sectie, om te bevestigen dat het proces inderdaad is gestopt.

Het Doden van Processen op Proces-ID met PSKill
Het doden van het proces op naam is misschien voldoende voor jouw behoeften als er slechts één exemplaar van dat proces draait of als je alle processen met die naam wilt beëindigen. Maar wat als je een specifiek exemplaar van een draaiend proces wilt beëindigen? De volgende stappen zullen dit demonstreren.
1. Op je externe server, open Notepad twee keer; je zult een van deze processen beëindigen in deze demonstratie; je kunt natuurlijk ook andere processen vervangen.
2. Voer de volgende opdracht uit en let op een van de Pid’s zoals hieronder weergegeven; je hebt dat nodig voor de volgende stap.

3. Gebruikend de PID, voer nu pskill
uit, waarbij je de PID als laatste argument opgeeft.

4. Controleer tot slot of je nog steeds één exemplaar van Notepad hebt dat wordt uitgevoerd door pslist
opnieuw uit te voeren. Je zou nu alleen een enkel exemplaar van Notepad in uitvoering moeten zien.

Het doden van externe Windows-processen met TaskKill op naam
Het hulpprogramma taskkill is ingebouwd in Windows en omvat verdere opdrachtregelopties voor het opnieuw starten van processen op basis van gebruikersnaam en toepassingsnaam. Laten we beginnen en Notepad opnieuw afsluiten!
Proces doden op basis van naam
1. Op je externe server, open Notepad; Notepad is het proces dat je in deze demonstratie zult afsluiten; je kunt natuurlijk een ander proces gebruiken.
2. Open een PowerShell-sessie of een opdrachtprompt op je desktop. Typ de volgende opdracht om notepad.exe af te sluiten:
De uitvoer wordt hieronder weergegeven:
/IM is de parameter voor afbeelding; in dit geval is het notepad.exe

3. Om te bevestigen dat het proces is gestopt, voer tasklist
uit. Je zou nu geen taken moeten zien die overeenkomen met die filter.

Het doden van externe Windows-processen met TaskKill op PID
Een proces doden met taskkill
met behulp van een PID is niet veel anders dan het gebruiken van de procesnaam. Maar omdat je de naam niet kunt gebruiken, moet je eerst de PID vinden en die vervolgens doorgeven aan taskkill
.
Als je ervan uitgaat dat Notepad wordt uitgevoerd op je externe Windows-host:
1. Voer tasklist
uit zoals hieronder weergegeven om de PID van het Notepad-proces te vinden. Noteer een van de PID’s zoals hieronder weergegeven; je hebt dat nodig voor de volgende stap.

2. Voer nu taskkill
uit en geef de PID op als het laatste argument.

3. Voer tot slot tasklist
uit om te bevestigen dat het proces is gestopt.

Het stoppen van een extern Windows-proces met PowerShell
PowerShell biedt je een paar opties om externe processen te beëindigen; het eerste cmdlet Stop-Process
kan niet van nature een extern proces beëindigen, omdat het geen optie heeft om een computernaam op te geven. Maar je kunt dit probleem omzeilen door Stop-Process
op afstand uit te voeren via PowerShell Remoting.
1. Als je host en externe server niet in een Active Directory-domein zitten, verstrek dan eerst een gebruikersnaam en wachtwoord en maak een PSCredential-object aan.

2. Vervolgens, aangezien de tutorial SSL zal gebruiken om verbinding te maken met de externe computer en een zelfondertekend certificaat zal gebruiken, maak een PSSessionOption aan die de certificaatcontrole overslaat voor een vertrouwde certificaatautoriteit.
3. Nu, maak verbinding met de server met het Enter-PSSession
commando, wat een interactieve sessie met de externe server tot stand brengt.
Het onderstaande commando maakt verbinding met de computer WIN-BANGJIEFNOC.local.net
met de opgegeven gebruikersnaam en wachtwoord (Credential
), slaat de controle van de certificaatautoriteit over (SessionOption
), en maakt verbinding via SSL (UseSSL
).

4. Zodra je verbonden bent met de externe host, controleer het proces dat je wilt beëindigen door Get-Process
uit te voeren. In dit geval zie je het notepad
proces.

5. Om dit proces te beëindigen, voer Stop-Process
uit, zoals hieronder getoond.
6. Bevestig ten slotte dat je het proces hebt beëindigd door opnieuw Get-Process
uit te voeren, en je zou een foutmelding moeten ontvangen.

Als je een extern Windows proces wilt stoppen zonder interactie, gebruik dan het
Invoke-Command
commando met de volgende parameters:Invoke-Command -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -ScriptBlock {Stop-Process -ProcessName notepad} -UseSSL
. Door hetStop-Proces
commando in deScriptBlock
parameter te encapsuleren, wordt het commando naar de externe host verzonden.
Conclusie
Je hebt geleerd over verschillende methoden om externe processen te beëindigen en hoe je situaties kunt overwinnen waarin netwerkfirewallregels mogelijk voorkomen dat hulpprogramma’s correct werken; deze tutorial heeft je misschien ook geholpen bij het oplossen van problemen in Windows.
De hulpprogramma’s waarover je hebt geleerd, zijn krachtige tools; gebruik ze met zorg!
Source:
https://adamtheautomator.com/how-to-kill-a-windows-process/