Ben je geïnteresseerd in het gebruik van de PowerShell Get-Process cmdlet om de lopende processen van een systeem weer te geven? Met Get-Process
kun je de eigenaar van het proces vinden, het proces-ID, of zelfs waar op de schijf het proces zich bevindt.
In dit artikel leer je hoe je de Get-Process
cmdlet van PowerShell kunt gebruiken aan de hand van praktijkvoorbeelden. Als het manipuleren van processen om ze naar jouw wil te buigen op Windows of Linux klinkt als plezier, blijf dan lezen!
Gerelateerd: Hoe een proces te beëindigen in Linux met behulp van ps, pgrep, pkill en meer!
Vereisten
Voordat je verder gaat, zijn hieronder de noodzakelijke vereisten om de voorbeelden in dit artikel te volgen.
- Hoewel Windows PowerShell 5.1 voldoende is voor de meeste voorbeelden hier, is PowerShell 7.1 en hoger vereist voor Linux-ondersteuning.
Gerelateerd: Upgraden naar PowerShell 7: Een stapsgewijze handleiding
- Dit artikel maakt gebruik van Windows 10 en Ubuntu 20.04 LTS, maar elk besturingssysteem waarop PowerShell draait, zal werken.
Klaar? Laten we duiken en wat processen beheren!
Weergeven van Lopende Processen
Get-Process
beheert lokale processen. In dit eerste voorbeeld gebruik je de PowerShell Get-Process c
mdlet. Deze opdracht geeft alle actieve processen weer.
Get-Process
geeft een momentopname van de lopende procesinformatie van een systeem. Om realtime procesinformatie weer te geven, biedt Windows Windows Taakbeheer en Linux biedt het top-commando aan.
Om te beginnen opent u uw PowerShell-console en voert u Get-Process
uit. Merk op dat Get-Process
de informatie over de lopende processen retourneert, zoals hieronder weergegeven. De uitvoerindeling is identiek voor de Windows- en Linux-besturingssystemen.

Get-Process
cmdlet on Windows to display local processes.Standaard bestaan de
gps
ofps
als commando-aliassen voorGet-Process
. Omdat PowerShell 7 platformonafhankelijk is, conflicteert hetps
-commando met een ingebouwd Linux-commando. Daarom werktps
niet op Linux, alleen degps
-alias.
De betekenis van de uitvoer van Get-Process
is mogelijk niet onmiddellijk duidelijk. De standaardeigenschappen van Get-Process
worden hieronder meer in detail beschreven.
- NPM(K) – De hoeveelheid niet-gepagineerd geheugen die een proces gebruikt, weergegeven in kilobytes, zoals aangegeven door de
(K)
-notatie. - PM(M) – De hoeveelheid pageable-geheugen die een proces gebruikt, weergegeven in megabytes, zoals aangegeven door de notatie
(M)
. - WS(M) – De omvang van de werkset van het proces, weergegeven in megabytes. De werkset bestaat uit de pagina’s geheugen die recentelijk door het proces zijn aangeroepen.
- VM(M) – De hoeveelheid virtueel geheugen die het proces gebruikt, weergegeven in megabytes. Omvat opslag in de paginabestanden op schijf.
- CPU(S) – De hoeveelheid processortijd die het proces heeft gebruikt voor alle processen, weergegeven in seconden.
- Id – De proces-ID (PID) van het proces.
- SI – Sessie-identificatie van het actieve proces. Sessie
0
geeft aan dat het proces beschikbaar is voor alle gebruikers,1
geeft aan dat het proces bestaat onder de eerste ingelogde gebruiker, enzovoort. - ProcessName – De naam van het actieve proces.
Om een lijst weer te geven van eigenschapsaliassen die zijn toegewezen aan volledige eigenschapsnamen, gebruikt u het commando
Get-Process | Get-Member -MemberType 'AliasProperty'
.
Hieronder volgt nog een goed voorbeeld. Voor elke instantie van het brave-proces dat het vindt, gebruikt het de ID van dat proces ($_.id
) en geeft het door aan Get-NetTCPConnection
. PowerShell gebruikt vervolgens Get-NetTCPConnection
om informatie te vinden over elke netwerkverbinding die het brave-proces open heeft.
Voer de volgende code uit in je PowerShell-sessie wanneer de Brave-browser actief is.
Bedankt aan Jay Adams van SystemFrontier!
Congratulations, je kunt nu alle lopende processen bekijken op zowel Windows als Linux met Get-Process
!
Specifieke kenmerken van processen vinden
Get-Process
retourneert verschillende eigenschappen van lopende processen, zoals eerder gezien. Zoals bij alle andere PowerShell-objecten, kun je selectief eigenschappen van objecten kiezen.
Laten we nu een eenvoudig voorbeeld doorlopen van hoe je specifieke eigenschappen kunt ophalen voor een specifiek proces:
- Start je Windows-rekenmachine.
2. Met een open PowerShell-console voer je Get-Process
uit met de parameter Name
om alleen alle lopende processen met Calculator als naam weer te geven. Je ziet dezelfde uitvoer als eerder.
Get-Process
retourneert zoals verwacht veel eigenschappen. Misschien wil je alleen CPU-gebruik vinden met de waarde onder de CPU(s)
-kolom. Omring de Get-Process
-opdracht met haakjes en verwijs naar de eigenschap CPU
zoals hieronder getoond. Je zult zien dat het alleen de waarde voor de CPU
-eigenschap retourneert.
Let op dat
Get-Process
een naam teruggeeft genaamdCPU(s)
en het bovenstaande codefragment gebruikte alleen de naamCPU
. Soms laat PowerShell de werkelijke eigenschapsnaam niet zien in de uitvoer. Dit concept wordt uitgevoerd met een PS1XML-opmaakbestand.
De CPU-tijd wordt uitgedrukt als een totaal van seconden over kernen. Om dat om te zetten naar een meer menselijk leesbaar getal, rond het af naar het dichtstbijzijnde tiende met behulp van een Math
-methode zoals hieronder wordt getoond.

U kunt de bovenstaande aanpak ook gebruiken om andere eigenschappen te vinden, zoals
Id
als u alleen het ID van een proces wilt zien.
Laat de Rekenmachine applicatie draaien. U zult deze applicatie gebruiken voor de rest van de voorbeelden.
Geheugengebruik van Processen Ophalen
Het oplossen van langzaam werkende systemen kan een uitdaging zijn, waarbij beperkt geheugen vaak een oorzaak is. Ga verder met de Rekenmachine app, haal het Rekenmachine
proces op en toon alleen de VM
eigenschap. Zoals hieronder te zien is, wordt het gebruikte geheugen weergegeven in megabytes (MB).

Calculator
process memory usage.Om het geheugengebruik beter te begrijpen, kunt u de ingebouwde PowerShell conversiefactoren gebruiken om megabytes (MB) om te zetten naar gigabytes (GB). In het onderstaande voorbeeld zult u het geheugengebruik omzetten naar GB en vervolgens de .NET math library Round
methode gebruiken om de waarde af te ronden, zoals te zien is in de onderstaande screenshot.
Het gebruik van ingebouwde PowerShell hulpprogramma’s om de waarden om te zetten maakt het gemakkelijker om de output te begrijpen. Lees verder om te leren hoe u de ID van een proces kunt vinden.

Onbekende eigenschappen blootleggen
Niet alle eigenschappen zijn standaard opgenomen of worden weergegeven bij Get-Process
. Lees hieronder meer over de eigenschappen Path
en UserName
en hoe u ze kunt gebruiken!
Ontdekken waar een procesbestand zich bevindt
Er zijn veel plaatsen op een systeem waar een uitvoerbaar procesbestand kan worden opgeslagen. Als een proces momenteel actief is, maakt Get-Process
het gemakkelijk om het bestandssysteempad van het proces te vinden, ondanks dat Path
standaard niet wordt weergegeven. Zoals hieronder wordt getoond, bevat de eigenschap Path
de bestandslocatie van het uitvoerbare proces.

Get-Process
to display a process’s full file system path on Windows.Net als in Windows retourneert Get-Process
in Linux ook het bestandssysteempad. In het onderstaande voorbeeld wordt het proces gnome-calculator
uitgevoerd met het pad weergegeven in de console-uitvoer.

Get-Process
to display a process’s full file system path on Linux.Handige slechteriken kunnen een proces dezelfde of vergelijkbare naam geven als een vertrouwd proces. Daarom helpt de mogelijkheid om het bestandssysteempad te vinden in een beveiligingsincidentrespons (IR)-scenario. Lees verder om te ontdekken hoe u de eigenaar van het proces kunt vinden, aangezien UserName
niet is opgenomen in de standaarduitvoer.
De eigenaar van het proces vinden
Om de waarde van UserName
in de uitvoer op te nemen, moet u de parameter IncludeUserName
gebruiken. Het is belangrijk om de eigenaar van het proces te kennen, vooral om per ongeluk het proces van een andere gebruiker te beëindigen. Zoals hieronder getoond, is de eigenschap UserName
nu opgenomen in de uitvoer van het proces.

Calculator
process on Windows.Lees ten slotte verder om te leren over het gebruik van Get-Process
op een externe computer om procesinformatie op te halen!
Processen vinden op externe computers
Hoewel in Windows PowerShell Get-Process
geen mogelijkheden voor externe computers heeft, kunt u altijd gebruikmaken van PowerShell Remoting en Invoke-Command
om het op externe computers uit te voeren.
Gerelateerd: Hoe PSRemoting instellen met Windows en Linux
Maar als je Linux gebruikt of PowerShell 6 op Windows draait, heb je nu een ComputerName
-parameter die je kunt gebruiken om processen op externe computers te bevragen.
De
-ComputerName
-parameter is verwijderd in PowerShell 7.x omdat de cmdlet niet direct gerelateerd is aan remoting. Om hetzelfde te bereiken, kun je hetzelfde omhullen in eenInvoke-Command
, zoals:Invoke-Command -ComputerName "ComputerName" -ScriptBlock { Get-Process -ProcessName 'process' }
Wanneer het bovenstaande commando wordt uitgevoerd op een externe computer, wordt dezelfde uitvoer weergegeven alsof het Get-Process
-commando lokaal was uitgevoerd.
Hieronder volgt een voorbeeld van remoting naar een andere computer en het ophalen van actieve processen:

Je kunt meerdere computers targeten door ze te scheiden met een komma bijvoorbeeld
Get-Process -ComputerName SRV1,SRV2.
Volgende stappen
In dit artikel heb je geleerd hoe je de PowerShell Get-Process
cmdlet kunt gebruiken om actieve processen te vinden met PowerShell op zowel lokale als externe computers, zowel Linux als Windows.
En nu, wat ga je doen met deze kennis? Probeer een door Get-Process
verkregen proces door te geven aan Stop-Process
op een lokale of externe computer om het te beëindigen!
Source:
https://adamtheautomator.com/powershell-get-process/