Delen via


Get-Process

Hiermee haalt u de processen op die op de lokale computer worden uitgevoerd.

Syntaxis

Name (Standaard)

Get-Process
    [[-Name] <String[]>]
    [-Module]
    [-FileVersionInfo]
    [<CommonParameters>]

NameWithUserName

Get-Process
    [[-Name] <String[]>]
    -IncludeUserName
    [<CommonParameters>]

Id

Get-Process
    -Id <Int32[]>
    [-Module]
    [-FileVersionInfo]
    [<CommonParameters>]

IdWithUserName

Get-Process
    -Id <Int32[]>
    -IncludeUserName
    [<CommonParameters>]

InputObject

Get-Process
    -InputObject <Process[]>
    [-Module]
    [-FileVersionInfo]
    [<CommonParameters>]

InputObjectWithUserName

Get-Process
    -InputObject <Process[]>
    -IncludeUserName
    [<CommonParameters>]

Description

De cmdlet Get-Process haalt de processen op een lokale computer op.

Zonder parameters haalt deze cmdlet alle processen op de lokale computer op. U kunt ook een specifiek proces opgeven op basis van procesnaam of proces-id (PID), of door een System.Diagnostics.Process-object door te geven aan deze cmdlet.

Deze cmdlet retourneert standaard een procesobject met gedetailleerde informatie over het proces en ondersteunt methoden waarmee u dit kunt beheren. Met parameters kunt u het type informatie wijzigen dat door deze cmdlet wordt geretourneerd.

  • Module: Informatie ophalen voor elke module die in het proces is geladen.
  • FileVersionInfo: informatie over de bestandsversie ophalen voor de hoofdmodule van het proces.

Opmerking

Een module is een uitvoerbaar bestand of een DLL (Dynamic Link Library) die in een proces is geladen. Een proces heeft een of meer modules. De hoofdmodule is de module die wordt gebruikt om het proces in eerste instantie te starten. Zie ProcessModule Class voor meer informatie.

Voorbeelden

Voorbeeld 1: Een lijst ophalen met alle actieve processen op de lokale computer

Get-Process

Met deze opdracht wordt een lijst met alle actieve processen op de lokale computer weergegeven. Zie de sectie NOTES voor een definitie van elke weergavekolom.

Als u alle eigenschappen van een procesobject wilt zien, gebruikt u Get-Process | Get-Member. In PowerShell worden standaard bepaalde eigenschapswaarden weergegeven met behulp van eenheden zoals kilobytes (K) en megabytes (M). De werkelijke waarden die worden geopend met de operator voor lidtoegang (.) bevinden zich in bytes.

Voorbeeld 2: Gedetailleerde informatie weergeven over een of meer processen

Get-Process winword, explorer | Format-List *

Deze pijplijn bevat gedetailleerde informatie over de winword en explorer processen op de computer. Hierbij wordt de parameter Name gebruikt om de processen op te geven, maar wordt de optionele parameternaam weggelaten. De pijplijnoperator (|) pijplijnobjecten procesobjecten naar de Format-List cmdlet, waarin alle beschikbare eigenschappen (*) en de bijbehorende waarden voor elk object worden weergegeven.

U kunt de processen ook identificeren op basis van hun proces-id's. Bijvoorbeeld Get-Process -Id 664, 2060.

Voorbeeld 3: Alle processen ophalen met een werkset groter dan een opgegeven grootte

Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB

De Get-Process cmdlet retourneert de actieve processen. De uitvoer wordt doorgesluisd naar de Where-Object cmdlet, waarmee de objecten worden geselecteerd met een WorkingSet-waarde die groter is dan 20.971.520 bytes.

In het eerste voorbeeld Where-Object wordt een scriptblok gebruikt om de eigenschap WorkingSet van elk procesobject te vergelijken. In het tweede voorbeeld gebruikt de Where-Object cmdlet de vereenvoudigde syntaxis om de eigenschap WorkingSet te vergelijken. In dit geval is dit -GT een parameter, geen vergelijkingsoperator. In het tweede voorbeeld wordt ook een numeriek letterlijk achtervoegsel gebruikt als beknopt alternatief voor 20971520. In PowerShell MB vertegenwoordigt u een mebibyte-vermenigvuldiger (MiB). 20MB is gelijk aan 20.971.520 bytes.

Voorbeeld 4: Processen weergeven op de computer in groepen op basis van prioriteit

$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority

Met deze opdrachten worden processen op de computer in groepen weergegeven op basis van hun prioriteitsklasse. Met de eerste opdracht worden alle processen op de computer opgeslagen en opgeslagen in de $processes variabele.

Met de tweede opdracht worden de procesobjecten die zijn opgeslagen in de $processes variabele Sort-Object , vervolgens naar de Format-Table cmdlet uitgevoerd, waarmee de processen worden opgemaakt met behulp van de prioriteitsweergave .

Voorbeeld 5: Een eigenschap toevoegen aan de standaarduitvoerweergave 'Get-Process'

Get-Process -Name pwsh | Format-Table -Property @(
    @{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
    @{ Name = 'PM(M)';  Expression = { [int] ($_.PM / 1MB) } }
    @{ Name = 'WS(M)';  Expression = { [int] ($_.WS / 1MB) } }
    @{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
    'Id'
    @{ Name = 'SI'; Expression = 'SessionId' }
    'ProcessName'
    'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s)   Id SI ProcessName StartTime
------ ----- ----- ------   -- -- ----------- ---------
    84    46    79 18.297 3188  1 pwsh        4/14/2025 10:40:10 AM
    66    30    90 4.328  4640  1 pwsh        4/13/2025 3:33:50 PM
    66    30    90 4.516  9204  1 pwsh        4/14/2025 9:54:27 AM

In dit voorbeeld worden processen opgehaald van de lokale computer en wordt elk procesobject naar de Format-Table cmdlet geleid. Format-Table maakt de standaarduitvoerweergave van een procesobject opnieuw met behulp van een combinatie van eigenschapsnamen en berekende eigenschappen. De weergave bevat een extra StartTime-eigenschap die niet aanwezig is in de standaardweergave.

Voorbeeld 6: Versie-informatie voor een proces ophalen

Get-Process -Name pwsh -FileVersionInfo
ProductVersion   FileVersion      FileName
--------------   -----------      --------
7.5.0 SHA: 99da… 7.5.0.500        C:\Program Files\PowerShell\7\pwsh.exe

Met deze opdracht wordt de parameter FileVersionInfo gebruikt om informatie over de bestandsversie op te halen voor de hoofdmodule van het pwsh proces. De hoofdmodule is het bestand dat wordt gebruikt om het proces te starten, in dit geval pwsh.exe.

Als u deze opdracht wilt gebruiken met processen die u niet bezit in Windows Vista en latere versies van Windows, moet u PowerShell uitvoeren met verhoogde gebruikersrechten (Als administrator uitvoeren).

Voorbeeld 7: Modules laden met het opgegeven proces

Get-Process -Name SQL* -Module

Met deze opdracht wordt de moduleparameter gebruikt om de modules geladen door alle processen met een naam te laten beginnen.SQL

Als u deze opdracht wilt gebruiken met processen die u niet bezit in Windows Vista en latere versies van Windows, moet u PowerShell uitvoeren met verhoogde gebruikersrechten (Als administrator uitvoeren).

Voorbeeld 8: De eigenaar van een proces zoeken

Get-Process -Name pwsh -IncludeUserName
WS(M)   CPU(s)      Id UserName                       ProcessName
-----   ------      -- --------                       -----------
46.53    21.70    3188 DOMAIN01\user01                pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
    Invoke-CimMethod -MethodName GetOwner
Domain   ReturnValue User   PSComputerName
------   ----------- ----   --------------
DOMAIN01           0 user01

De eerste opdracht laat zien hoe u de eigenaar van een proces kunt ophalen. De uitvoer laat zien dat de eigenaar DOMAIN01\user01is.

De tweede pijplijn toont een andere manier om de eigenaar van een proces op te halen met en Get-CimInstanceInvoke-CimMethod. De Win32_Process-klasse met een filter haalt processen op pwsh en de aangeroepen GetOwner() methode retourneert informatie over het domein en de gebruiker van het proces. Deze methode is alleen beschikbaar in Windows en vereist geen verhoogde gebruikersrechten.

Voorbeeld 9: Gebruik een automatische variabele om het proces te identificeren dat als host fungeert voor de huidige sessie

Get-Process -Name pwsh
NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21     105.95       4.33    1192  10 pwsh
    79    83.81     117.61       2.16   10580  10 pwsh
Get-Process -Id $PID
NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21      77.53       4.39    1192  10 pwsh

Deze opdrachten laten zien hoe u de $PID automatische variabele gebruikt om het proces te identificeren dat als host fungeert voor de huidige PowerShell-sessie. U kunt deze methode gebruiken om het hostproces te onderscheiden van andere pwsh processen die u mogelijk wilt beheren.

Met de eerste opdracht worden alle pwsh processen uitgevoerd. De tweede opdracht haalt het pwsh proces op dat als host fungeert voor de huidige sessie.

Voorbeeld 10: Alle processen ophalen met een titel van het hoofdvenster en deze weergeven in een tabel

Get-Process |
    Where-Object -Property MainWindowTitle |
    Format-Table -Property Id, Name, MainWindowTitle -AutoSize

Met deze pijplijn worden alle processen opgehaald met een hoofdvenstertitel en weergegeven in een tabel met de proces-id en naam.

MainWindowTitle is een van de vele nuttige eigenschappen van het objecttype Diagnostics.Process dat Get-Process retourneert. Als u alle eigenschappen wilt weergeven, gebruikt u Get-Process | Get-Member.

Parameters

-FileVersionInfo

Geeft aan dat deze cmdlet de informatie over de bestandsversie ophaalt voor het programma dat in het proces wordt uitgevoerd.

In Windows Vista en latere versies van Windows moet u PowerShell uitvoeren met verhoogde gebruikersrechten (Als administrator uitvoeren) om deze parameter te gebruiken voor processen die u niet bezit.

Het gebruik van deze parameter is hetzelfde als het openen van de eigenschap MainModule.FileVersionInfo van elk procesobject . Wanneer u deze parameter gebruikt, Get-Process retourneert u een FileVersionInfo-object , niet een Procesobject . U kunt geen uitvoer doorsluisen die met deze parameter wordt geproduceerd naar een cmdlet die een procesobject verwacht, zoals Stop-Process.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:FV, FVI

Parametersets

Name
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Id
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
InputObject
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Id

Hiermee geeft u een of meer processen per proces-id (PID). U kunt meerdere id's opgeven, gescheiden door komma's. Als u de PID van een proces wilt ophalen, gebruikt u Get-Process. Als u de PID van de huidige PowerShell-sessie wilt ophalen, gebruikt u $PID.

Parametereigenschappen

Type:

Int32[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:PID

Parametersets

Id
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
IdWithUserName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-IncludeUserName

Hiermee wordt aangegeven dat met deze opdracht een eigenschap UserName wordt toegevoegd aan elk geretourneerd procesobject .

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

NameWithUserName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
IdWithUserName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
InputObjectWithUserName
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-InputObject

Hiermee geeft u een of meer procesobjecten op. Gebruik een variabele die de objecten bevat, of een opdracht of expressie waarmee de objecten worden opgehaald.

Parametereigenschappen

Type:

Process[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

InputObject
Position:Named
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
InputObjectWithUserName
Position:Named
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Module

Geeft aan dat deze cmdlet de modules ophaalt die het proces heeft geladen.

In Windows Vista en latere versies van Windows moet u PowerShell uitvoeren met verhoogde gebruikersrechten (Als administrator uitvoeren) om deze parameter te gebruiken voor processen die u niet bezit.

Het gebruik van deze parameter is hetzelfde als het openen van de eigenschap Modules van elk procesobject . Wanneer u deze parameter gebruikt, Get-Process retourneert u een ProcessModule-object , niet een Procesobject . U kunt geen uitvoer doorsluisen die met deze parameter wordt geproduceerd naar een cmdlet die een procesobject verwacht, zoals Stop-Process.

Wanneer u de parameters Module en FileVersionInfo samen gebruikt, retourneert deze cmdlet een FileVersionInfo-object met informatie over de bestandsversie van alle modules.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Name
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
Id
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
InputObject
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Name

Hiermee geeft u een of meer processen op procesnaam. U kunt meerdere procesnamen opgeven, gescheiden door komma's en jokertekens gebruiken. Het gebruik van de -Name parameter is optioneel.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False
Aliassen:ProcessName

Parametersets

Name
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
NameWithUserName
Position:0
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

Process

U kunt procesobjecten doorsluisen naar deze cmdlet.

Uitvoerwaarden

Process

Deze cmdlet retourneert standaard een System.Diagnostics.Process-object.

FileVersionInfo

Als u de parameter FileVersionInfo gebruikt, retourneert deze cmdlet een System.Diagnostics.FileVersionInfo-object .

ProcessModule

Als u de parameter Module gebruikt, zonder de parameter FileVersionInfo , retourneert deze cmdlet een System.Diagnostics.ProcessModule-object .

Notities

PowerShell bevat de volgende aliassen voor Get-Process:

  • Alle platforms:
    • gps
  • Windows:
    • ps

Op computers met 64-bits Windows krijgt de 64-bits versie van PowerShell de hoofdmodule en 64-bits procesmodules. De 32-bits versie van PowerShell krijgt slechts 32-bits procesmodules.

Waarschuwing

Wanneer u Get-Process een 64-bits proces opvragen in de 32-bits versie van PowerShell, zijn $nulleigenschappen zoals Path en MainModule van het geretourneerde procesobject. U moet de 64-bits versie van PowerShell of de Win32_Process-klasse gebruiken.

Gebruik de cmdlet Invoke-Command om procesgegevens van een externe computer op te halen. Zie Invoke-Commandvoor meer informatie.

In Windows kunt u de WMI-klasse (Windows Management Instrumentation) gebruiken Win32_Process in PowerShell als alternatief voor Get-Process. Voor meer informatie, zie:

De standaardweergave van een procesobject is een tabelweergave met de volgende kolommen.

  • NPM(K): de hoeveelheid niet-paginageheugen die het proces gebruikt, in kilobytes.
  • PM(M): de hoeveelheid wisselbaar geheugen dat het proces gebruikt, in megabytes.
  • WS(M): De grootte van de werkset van het proces, in megabytes. De werkset bestaat uit de pagina's met geheugen waarnaar onlangs is verwezen door het proces.
  • CPU('s): de hoeveelheid processortijd die het proces in seconden voor alle processors heeft gebruikt.
  • id: de proces-id (PID) van het proces.
  • SI: De sessie-id van het proces.
  • ProcessName: de naam van het proces.

U kunt de ingebouwde alternatieve weergaven gebruiken voor procesobjecten die beschikbaar zijn met Format-Table, zoals StartTime en Priority. U kunt ook uw eigen weergaven ontwerpen.

Zie Proceseigenschappen en Procesmethoden voor een beschrijving van alle beschikbare procesobjectleden.