Hoe een Windows-proces op een extern systeem te beëindigen

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).

tasklist /S WIN-BANGJIEFNOC.local.net /U administrator /P password

Je zult hieronder merken dat de Sessienaam niet verschijnt. Omdat je tasklist op een externe computer uitvoert, levert tasklist de Sessienaam niet.

list of processes on a remote server

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.

tasklist /S WIN-BANGJIEFNOC.local.net /fi "imagename eq notepad.exe" /U administrator /P 'password'
The output of tasklist showing a specific process

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.

.\pslist \\WIN-BANGJIEFNOC.local.net -u Administrator -p 'password' -s

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.

Output in real-time of pslist

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.

.\pskill.Exe \\WIN-BANGJIEFNOC.local.net -u administrator -p 'password' -e notepad.exe
Output of pskill

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

.\pslist \\WIN-BANGJIEFNOC.local.net -u Administrator -p 'password' -e notepad.exe
Output of pslist

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.

.\pslist \\WIN-BANGJIEFNOC.local.net -u Administrator -p password -e notepad
Using pslist to list PID’s of Notepad

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

.\pskill.Exe \\WIN-BANGJIEFNOC.local.net -u administrator -p password 1984
The output of pskill for a particular PID

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.

Output of pslist

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:

taskkill /S WIN-BANGJIEFNOC.local.net /you administrator /p password /IM notepad.exe

De uitvoer wordt hieronder weergegeven:

/IM is de parameter voor afbeelding; in dit geval is het notepad.exe

The output of taskkill command

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

tasklist /S WIN-BANGJIEFNOC.local.net /fi "imagename eq notepad.exe" /U administrator /P 'password'
Output of tasklist using imagename

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.

tasklist /S WIN-BANGJIEFNOC.local.net /fi "imagename eq notepad.exe" /U administrator /P 'password'
the output of tasklist to view PIDS

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

taskkill /S WIN-BANGJIEFNOC.local.net /u administrator /p 'password' /PID 3776
The output of taskkill specifying a particular PID

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

Output of tasklist

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.

$credentials = Get-Credential
Setting up credentials

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.

$PSSessionOption = New-PSSessionOption -SkipCACheck

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).

Enter-PSSession -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -SessionOption $PSSessionOption -UseSSL
Using Enter-PsSession for an interactive session

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.

Get-Process -ProcessName Notepad
Output of Get-Process

5. Om dit proces te beëindigen, voer Stop-Process uit, zoals hieronder getoond.

Stop-Process -ProcessName Notepad

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.

Checking for Notepad as a running process

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 het Stop-Proces commando in de ScriptBlock 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/