Delen via


Get-Process

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

Syntaxis

Get-Process
   [[-Name] <String[]>]
   [-ComputerName <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   [[-Name] <String[]>]
   [-IncludeUserName]
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   [-IncludeUserName]
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   [-ComputerName <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   [-IncludeUserName]
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   [-ComputerName <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]

Description

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

Zonder parameters haalt deze cmdlet alle processen op de lokale computer op. U kunt ook een bepaald proces opgeven op basis van procesnaam of proces-id (PID) of een procesobject doorgeven via de pijplijn aan deze cmdlet.

Deze cmdlet retourneert standaard een procesobject met gedetailleerde informatie over het proces en ondersteunt methoden waarmee u het proces kunt starten en stoppen. U kunt ook de parameters van de Get-Process cmdlet gebruiken om informatie over de bestandsversie op te halen voor het programma dat in het proces wordt uitgevoerd en om de modules op te halen die door het proces zijn geladen.

Voorbeelden

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

Get-Process

Met deze opdracht krijgt u een lijst met alle actieve processen die worden uitgevoerd op de lokale computer. Zie de sectie Notities voor een definitie van elke kolom.

Voorbeeld 2: alle beschikbare gegevens over een of meer processen ophalen

Get-Process winword, explorer | Format-List *

Met deze opdracht worden alle beschikbare gegevens opgehaald 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 | de gegevens doorgeeft aan de cmdlet Format-List, waarin alle beschikbare eigenschappen worden weergegeven * van de Winword- en Explorer-procesobjecten.

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 20000000}

Met deze opdracht worden alle processen met een werkset groter dan 20 MB weergegeven. De cmdlet Get-Process wordt gebruikt om alle actieve processen op te halen. De pijplijnoperator | de procesobjecten doorgeeft aan de Where-Object-cmdlet. Hiermee selecteert u alleen het object met een waarde die groter is dan 20.000.000 bytes voor de eigenschap WorkingSet.

WorkingSet is een van de vele eigenschappen van procesobjecten. Als u alle eigenschappen wilt zien, typt u Get-Process | Get-Member. Standaard bevinden de waarden van alle hoeveelheidseigenschappen zich in bytes, ook al worden ze in kilobytes en megabytes weergegeven in de standaardweergave.

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

$A = Get-Process
$A | Get-Process | Format-Table -View priority

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

Met de tweede opdracht wordt het process-object dat is opgeslagen in de $A-variabele, naar de Get-Process-cmdlet geleid, en vervolgens naar de Format-Table-cmdlet, waarmee de processen worden opgemaakt met behulp van de weergave Priority.

De Priority-weergave en andere weergaven worden gedefinieerd in de PS1XML-indelingsbestanden in de PowerShell-basismap ($pshome).

Voorbeeld 5: Een eigenschap toevoegen aan de standaardweergave Get-Process uitvoer

Get-Process powershell -ComputerName S1, localhost | Format-Table `
    @{Label = "NPM(K)"; Expression = {[int]($_.NPM / 1024)}},
    @{Label = "PM(K)"; Expression = {[int]($_.PM / 1024)}},
    @{Label = "WS(K)"; Expression = {[int]($_.WS / 1024)}},
    @{Label = "VM(M)"; Expression = {[int]($_.VM / 1MB)}},
    @{Label = "CPU(s)"; Expression = {if ($_.CPU) {$_.CPU.ToString("N")}}},
    Id, MachineName, ProcessName -AutoSize

NPM(K) PM(K) WS(K) VM(M) CPU(s)   Id MachineName ProcessName
------ ----- ----- ----- ------   -- ----------- -----------
     6 23500 31340   142 1.70   1980 S1          powershell
     6 23500 31348   142 2.75   4016 S1          powershell
    27 54572 54520   576 5.52   4428 localhost   powershell

In dit voorbeeld worden processen opgehaald van de lokale computer en een externe computer (S1). De opgehaalde processen worden doorgesluisd naar de opdracht Format-Table waarmee de eigenschap MachineName wordt toegevoegd aan de standaardweergave van Get-Process uitvoer.

Voorbeeld 6: Versie-informatie voor een proces ophalen

Get-Process powershell -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.6713.1       6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Deze opdracht maakt gebruik van de parameter FileVersionInfo om de versiegegevens op te halen voor het powershell.exe-bestand dat de hoofdmodule voor het PowerShell-proces is.

Als u deze opdracht wilt uitvoeren met processen die u niet bezit in Windows Vista en latere versies van Windows, moet u PowerShell openen met de optie Als administrator uitvoeren.

Voorbeeld 7: Modules laden met het opgegeven proces

Get-Process SQL* -Module

Deze opdracht maakt gebruik van de parameter Module om de modules op te halen die door het proces zijn geladen. Met deze opdracht haalt u de modules op voor de processen met namen die beginnen met SQL.

Als u deze opdracht wilt uitvoeren op Windows Vista en latere versies van Windows met processen waarvan u geen eigenaar bent, moet u PowerShell starten met de optie Uitvoeren als administrator.

Voorbeeld 8: De eigenaar van een proces zoeken

PS C:\> Get-Process powershell -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName            ProcessName
-------      -----   ------     -- --------            -----------
    782     132080     2.08   2188 DOMAIN01\user01     powershell

$p = Get-WmiObject Win32_Process -Filter "name='powershell.exe'"
$p.GetOwner()

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 3
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
Domain           : DOMAIN01
ReturnValue      : 0
User             : user01

De eerste opdracht laat zien hoe u de eigenaar van een proces kunt vinden. De parameter IncludeUserName vereist verhoogde gebruikersrechten (Als administrator uitvoeren). De uitvoer laat zien dat de eigenaar Domain01\user01 is.

De tweede en derde opdracht zijn een andere manier om de eigenaar van een proces te vinden.

De tweede opdracht maakt gebruik van Get-WmiObject om het PowerShell-proces op te halen. De variabele wordt opgeslagen in de $p variabele.

De derde opdracht maakt gebruik van de Methode GetOwner om de eigenaar van het proces in $p op te halen. De uitvoer laat zien dat de eigenaar Domain01\user01 is.

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

Get-Process powershell

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
308      26        52308      61780   567     3.18   5632 powershell
377      26        62676      63384   575     3.88   5888 powershell

Get-Process -Id $PID

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
396      26        56488      57236   575     3.90   5888 powershell

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 PowerShell-processen die u mogelijk wilt stoppen of sluiten.

Met de eerste opdracht worden alle PowerShell-processen in de huidige sessie opgeslagen.

De tweede opdracht haalt het PowerShell-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 {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Met deze opdracht worden alle processen opgehaald die een hoofdvenstertitel hebben en worden deze weergegeven in een tabel met de proces-id en de procesnaam.

De eigenschap mainWindowTitle is slechts een van de vele nuttige eigenschappen van het Process-object dat Get-Process retourneert. Als u alle eigenschappen wilt weergeven, geeft u de resultaten van een Get-Process opdracht door aan de Get-Member cmdlet Get-Process | Get-Member.

Parameters

-ComputerName

Hiermee geeft u de computers waarvoor deze cmdlet actieve processen krijgt. De standaardwaarde is de lokale computer.

Typ de NetBIOS-naam, een IP-adres of een FQDN (Fully Qualified Domain Name) van een of meer computers. Als u de lokale computer wilt opgeven, typt u de computernaam, een punt (.) of localhost.

Deze parameter is niet afhankelijk van externe communicatie met Windows PowerShell. U kunt de parameter ComputerName van deze cmdlet gebruiken, zelfs als uw computer niet is geconfigureerd voor het uitvoeren van externe opdrachten.

Type:String[]
Aliassen:Cn
Position:Named
Default value:Local computer
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-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 openen met de optie Als administrator uitvoeren om deze parameter te gebruiken voor processen die u niet bezit.

U kunt de FileVersionInfo- en ComputerName parameters van de Get-Process-cmdlet niet gebruiken in dezelfde opdracht.

Gebruik de Invoke-Command-cmdlet om informatie over bestandsversies op te halen voor een proces op een externe computer.

Het gebruik van deze parameter is gelijk aan het ophalen van de eigenschap MainModule.FileVersionInfo van elk procesobject. Wanneer u deze parameter gebruikt, retourneert Get-Process een FileVersionInfo object System.Diagnostics.FileVersionInfo, niet een procesobject. U kunt de uitvoer van de opdracht dus niet doorsluisen naar een cmdlet die een procesobject verwacht, zoals Stop-Process.

Type:SwitchParameter
Aliassen:FV, FVI
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Id

Hiermee geeft u een of meer processen per proces-id (PID). Als u meerdere id's wilt opgeven, gebruikt u komma's om de id's te scheiden. Als u de PID van een proces wilt vinden, typt u Get-Process.

Type:Int32[]
Aliassen:PID
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-IncludeUserName

Geeft aan dat de waarde UserName van het Process-object wordt geretourneerd met de resultaten van de opdracht.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InputObject

Hiermee geeft u een of meer procesobjecten op. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.

Type:Process[]
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Module

Geeft aan dat met deze cmdlet de modules worden opgehaald die door de processen zijn geladen.

In Windows Vista en latere versies van Windows moet u PowerShell openen met de optie Als administrator uitvoeren om deze parameter te gebruiken voor processen die u niet bezit.

Gebruik de cmdlet Invoke-Command om de modules op te halen die door een proces op een externe computer zijn geladen.

Deze parameter is gelijk aan het ophalen van de eigenschap Modules van elk procesobject. Wanneer u deze parameter gebruikt, retourneert deze cmdlet een ProcessModule-object System.Diagnostics.ProcessModule, niet een procesobject. U kunt de uitvoer van de opdracht dus niet doorsluisen naar een cmdlet die een procesobject verwacht, zoals Stop-Process.

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

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Name

Hiermee geeft u een of meer processen op procesnaam. U kunt meerdere procesnamen typen (gescheiden door komma's) en jokertekens gebruiken. De parameternaam ('Name') is optioneel.

Type:String[]
Aliassen:ProcessName
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:True

Invoerwaarden

Process

U kunt een procesobject doorsluisen naar deze cmdlet.

Uitvoerwaarden

System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule

Deze cmdlet retourneert standaard een System.Diagnostics.Process-object. Als u de FileVersionInfo parameter gebruikt, wordt een System.Diagnostics.FileVersionInfo object geretourneerd. Als u de parameter Module gebruikt, zonder de parameter FileVersionInfo, wordt er een System.Diagnostics.ProcessModule-object geretourneerd.

Notities

  • U kunt deze cmdlet ook raadplegen door de ingebouwde aliassen, ps en gps. Zie about_Aliasesvoor meer informatie.
  • Op computers met een 64-bits versie van Windows krijgt de 64-bits versie van PowerShell slechts 64-bits procesmodules en krijgt de 32-bits versie van PowerShell slechts 32-bits procesmodules.
  • U kunt de eigenschappen en methoden van het WMI-Win32_Process-object (Windows Management Instrumentation) in PowerShell gebruiken. Zie Get-WmiObject en de WMI SDK voor meer informatie.
  • De standaardweergave van een proces is een tabel met de volgende kolommen. Zie Proceseigenschappen in de MSDN-bibliotheek voor een beschrijving van alle eigenschappen van procesobjecten.
    • Ingangen: het aantal ingangen dat het proces heeft geopend.
    • NPM(K): de hoeveelheid niet-paginageheugen die het proces gebruikt, in kilobytes.
    • PM(K): de hoeveelheid wisselbaar geheugen dat het proces gebruikt, in kilobytes.
    • WS(K): De grootte van de werkset van het proces, in kilobytes. De werkset bestaat uit de pagina's met geheugen waarnaar onlangs is verwezen door het proces.
    • VM(M): de hoeveelheid virtueel geheugen die het proces gebruikt, in megabytes. Virtueel geheugen bevat opslag in de wisselbestanden op schijf.
    • CPU('s): de hoeveelheid processortijd die het proces in seconden heeft gebruikt voor alle processors.
    • Id: de proces-id (PID) van het proces.
    • ProcessName: de naam van het proces. Zie de woordenlijst in het Help- en ondersteuningscentrum en de Help voor Taakbeheer voor uitleg over de concepten die betrekking hebben op processen.
  • U kunt ook de ingebouwde alternatieve weergaven gebruiken van de processen die beschikbaar zijn met Format-Table, zoals StartTime en Priority, en u kunt uw eigen weergaven ontwerpen.