Get-Process

Hämtar de processer som körs på den lokala datorn.

Syntax

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

Description

Cmdleten Get-Process hämtar processerna på en lokal dator.

Utan parametrar hämtar den här cmdleten alla processer på den lokala datorn. Du kan också ange en viss process efter processnamn eller process-ID (PID) eller skicka ett processobjekt via pipelinen till den här cmdleten.

Som standard returnerar den här cmdleten ett processobjekt som har detaljerad information om processen och har stöd för metoder som gör att du kan starta och stoppa processen. Du kan också använda parametrarna för cmdleten Get-Process för att hämta filversionsinformation för programmet som körs i processen och för att hämta modulerna som processen läste in.

Exempel

Exempel 1: Hämta en lista över alla aktiva processer på den lokala datorn

Get-Process

Det här kommandot hämtar en lista över alla aktiva processer som körs på den lokala datorn. En definition av varje kolumn finns i avsnittet Anteckningar .

Exempel 2: Hämta alla tillgängliga data om en eller flera processer

Get-Process winword, explorer | Format-List *

Det här kommandot hämtar alla tillgängliga data om Winword- och Explorer-processerna på datorn. Den använder parametern Namn för att ange processerna, men utelämnar det valfria parameternamnet. Pipelineoperatorn (|) skickar data till cmdleten Format-List , som visar alla tillgängliga egenskaper (*) för Processobjekten Winword och Explorer.

Du kan också identifiera processerna med deras process-ID:n. Till exempel Get-Process -Id 664, 2060.

Exempel 3: Hämta alla processer med en arbetsuppsättning som är större än en angiven storlek

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

Det här kommandot hämtar alla processer som har en arbetsuppsättning som är större än 20 MB. Den använder cmdleten Get-Process för att hämta alla processer som körs. Pipelineoperatorn (|) skickar processobjekten till cmdleten Where-Object , som endast väljer objektet med ett värde som är större än 20 000 000 byte för egenskapen WorkingSet .

WorkingSet är en av många egenskaper för processobjekt. Om du vill se alla egenskaper skriver du Get-Process | Get-Member. Som standard är värdena för alla beloppsegenskaper i byte, även om standardvisningen visar dem i kilobyte och megabyte.

Exempel 4: Lista processer på datorn i grupper baserat på prioritet

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

Dessa kommandon listar processerna på datorn i grupper baserat på deras prioritetsklass. Det första kommandot hämtar alla processer på datorn och lagrar dem sedan i variabeln $A .

Det andra kommandot rör processobjektet som lagras i variabeln $A till cmdleten Get-Process och sedan till cmdletenFormat-Table, som formaterar processerna med hjälp av vyn Prioritet.

Vyn Prioritet och andra vyer definieras i PS1XML-formatfilerna i PowerShell-hemkatalogen ($pshome).

Exempel 5: Lägg till en egenskap i standardvisning av Get-Process-utdata

Get-Process pwsh | 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, ProcessName, StartTime -AutoSize

NPM(K)  PM(K)  WS(K)   VM(M) CPU(s)    Id ProcessName StartTime
------  -----  -----   ----- ------    -- ----------- ---------
   143 239540 259384 2366162 22.73  12720 pwsh        12/5/2022 3:21:51 PM
   114  61776 104588 2366127 11.45  18336 pwsh        12/5/2022 7:30:53 AM
   156  77924  82060 2366185 10.47  18812 pwsh        12/5/2022 7:30:52 AM
    85  48216 115192 2366074 1.14   24428 pwsh        12/8/2022 9:14:15 AM

Det här exemplet hämtar processer från den lokala datorn. De hämtade processerna skickas till kommandot som lägger till Format-Tableegenskapen StartTime i standardutdatavisningen Get-Process .

Exempel 6: Hämta versionsinformation för en process

Get-Process pwsh -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.2            6.1.2            C:\Program Files\PowerShell\6\pwsh.exe

Det här kommandot använder parametern FileVersionInfo för att hämta versionsinformationen pwsh.exe för filen som är huvudmodulen för PowerShell-processen.

Om du vill köra det här kommandot med processer som du inte äger i Windows Vista och senare versioner av Windows måste du öppna PowerShell med alternativet Kör som administratör .

Exempel 7: Hämta moduler som lästs in med den angivna processen

Get-Process SQL* -Module

Det här kommandot använder modulparametern för att hämta de moduler som har lästs in av processen. Det här kommandot hämtar modulerna för de processer som har namn som börjar med SQL.

Om du vill köra det här kommandot i Windows Vista och senare versioner av Windows med processer som du inte äger måste du starta PowerShell med alternativet Kör som administratör .

Exempel 8: Hitta ägaren till en process

Get-Process pwsh -IncludeUserName

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

Det här kommandot visar hur du hittar ägaren till en process. I Windows kräver parametern IncludeUserName utökade användarrättigheter (Kör som administratör). Utdata visar att ägaren är Domain01\user01.

Exempel 9: Använd en automatisk variabel för att identifiera processen som är värd för den aktuella sessionen

Get-Process 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

Dessa kommandon visar hur du använder den $PID automatiska variabeln för att identifiera den process som är värd för den aktuella PowerShell-sessionen. Du kan använda den här metoden för att skilja värdprocessen från andra PowerShell-processer som du kanske vill stoppa eller stänga.

Det första kommandot hämtar alla PowerShell-processer i den aktuella sessionen.

Det andra kommandot hämtar Den PowerShell-process som är värd för den aktuella sessionen.

Exempel 10: Hämta alla processer som har en huvudfönsterrubrik och visa dem i en tabell

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Det här kommandot hämtar alla processer som har en huvudfönsterrubrik och visar dem i en tabell med process-ID:t och processnamnet.

Egenskapen mainWindowTitle är bara en av många användbara egenskaper för processobjektetsom Get-Process returneras. Om du vill visa alla egenskaper dirigerar du resultatet av ett Get-Process kommando till cmdleten Get-Process | Get-MemberGet-Member .

Parametrar

-FileVersionInfo

Anger att den här cmdleten hämtar filversionsinformationen för programmet som körs i processen.

I Windows Vista och senare versioner av Windows måste du öppna PowerShell med alternativet Kör som administratör för att kunna använda den här parametern i processer som du inte äger.

Att använda den här parametern motsvarar att hämta egenskapen MainModule.FileVersionInfo för varje processobjekt. När du använder den här parametern Get-Process returnerar ett FileVersionInfo-objektSystem.Diagnostics.FileVersionInfo, inte ett processobjekt. Därför kan du inte skicka utdata från kommandot till en cmdlet som förväntar sig ett processobjekt, till exempel Stop-Process.

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Anger en eller flera processer efter process-ID (PID). Om du vill ange flera ID:er använder du kommatecken för att separera ID:erna. Om du vill hitta PID:en för en process skriver du Get-Process.

Type:Int32[]
Aliases:PID
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IncludeUserName

Anger att username-värdet för processobjektet returneras med resultatet av kommandot.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Anger ett eller flera processobjekt. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Module

Anger att den här cmdleten hämtar de moduler som har lästs in av processerna.

I Windows Vista och senare versioner av Windows måste du öppna PowerShell med alternativet Kör som administratör för att kunna använda den här parametern i processer som du inte äger.

Den här parametern motsvarar att hämta modulegenskapen för varje processobjekt. När du använder den här parametern returnerar den här cmdleten ett ProcessModule-objektSystem.Diagnostics.ProcessModule, inte ett processobjekt. Därför kan du inte skicka utdata från kommandot till en cmdlet som förväntar sig ett processobjekt, till exempel Stop-Process.

När du använder parametrarna Modul och FileVersionInfo i samma kommando returnerar den här cmdleten ett FileVersionInfo-objekt med information om filversionen av alla moduler.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Anger en eller flera processer efter processnamn. Du kan skriva flera processnamn (avgränsade med kommatecken) och använda jokertecken. Parameternamnet (Name) är valfritt.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Indata

Process

Du kan skicka ett processobjekt till den här cmdleten.

Utdata

Process

Som standard returnerar den här cmdleten ett System.Diagnostics.Process-objekt .

FileVersionInfo

Om du använder parametern FileVersionInfo returnerar den här cmdleten ett FileVersionInfo-objekt .

ProcessModule

Om du använder modulparametern , utan parametern FileVersionInfo , returnerar den här cmdleten ett ProcessModule-objekt .

Kommentarer

PowerShell innehåller följande alias för Get-Process:

  • Alla plattformar:
    • gps
  • Windows:
    • ps

På datorer som kör en 64-bitarsversion av Windows hämtar 64-bitarsversionen av PowerShell endast 64-bitars processmoduler och 32-bitarsversionen av PowerShell får bara 32-bitars processmoduler.

Om du vill hämta processinformation från en fjärrdator använder du cmdleten Invoke-Command . Mer information finns i Invoke-Command.

Du kan använda egenskaperna och metoderna för WMI-objektet (Windows Management Instrumentation) Win32_Process i PowerShell. Mer information finns i Win32_Process.

Standardvisningen av en process är en tabell som innehåller följande kolumner. En beskrivning av alla egenskaper för processobjekt finns i Processegenskaper.

  • Referenser: Antalet handtag som processen har öppnat.
  • NPM(K): Mängden icke-sidiga minne som processen använder i kilobyte.
  • PM(K): Mängden växlingsbart minne som processen använder i kilobyte.
  • WS(K): Storleken på arbetsuppsättningen för processen i kilobyte. Arbetsuppsättningen består av de minnessidor som nyligen refererades till av processen.
  • VM(M): Mängden virtuellt minne som processen använder i megabyte. Virtuellt minne innehåller lagring i växlingsfilerna på disken.
  • CPU(s): Den mängd processortid som processen har använt på alla processorer, i sekunder.
  • ID: Process-ID (PID) för processen.
  • ProcessName: Namnet på processen. Förklaringar av begrepp som rör processer finns i Ordlistan i Hjälp- och supportcenter och Hjälp för Aktivitetshanteraren.

Du kan också använda de inbyggda alternativa vyerna för de processer som är tillgängliga med Format-Table, till exempel StartTime och Prioritet, och du kan utforma dina egna vyer.