Dela via


Get-Process

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

Syntax

Name (Standard)

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

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 specifik process efter processnamn eller process-ID (PID) eller genom att skicka ett System.Diagnostics.Process-objekt till den här cmdleten.

Som standard returnerar den här cmdleten ett processobjekt som har detaljerad information om processen och stöder metoder som gör att du kan kontrollera den. Med parametrar kan du ändra vilken typ av information som returneras av den här cmdleten.

  • Modul: Hämta information för varje modul som läses in i processen.
  • FileVersionInfo: Hämta filversionsinformation för huvudmodulen i processen.

Anmärkning

En modul är en körbar fil eller ett DLL-bibliotek (Dynamic Link Library) som läses in i en process. En process har en eller flera moduler. Huvudmodulen är modulen som användes för att starta processen. Mer information finns i ProcessModule-klass.

Exempel

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

Get-Process

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

Om du vill se alla egenskaper för ett processobjekt använder du Get-Process | Get-Member. Som standard visar PowerShell vissa egenskapsvärden med hjälp av enheter som kilobyte (K) och megabyte (M). De faktiska värdena när de används med operatorn för medlemsåtkomst (.) är i byte.

Exempel 2: Visa detaljerad information om en eller flera processer

Get-Process winword, explorer | Format-List *

Den här pipelinen visar detaljerad information om processerna winword och explorer på datorn. Den använder parametern Name för att ange processerna, men utelämnar det valfria parameternamnet. Pipelineoperatorn (|) rör Processobjekt till cmdleten Format-List , som visar alla tillgängliga egenskaper (*) och deras värden för varje objekt.

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 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB

Cmdleten Get-Process returnerar de processer som körs. Utdata skickas till cmdleten Where-Object , som väljer objekten med ett WorkingSet-värde som är större än 20 971 520 byte.

I det första exemplet Where-Object använder du en scriptblock för att jämföra egenskapen WorkingSet för varje processobjekt . I det andra exemplet använder cmdleten Where-Object den förenklade syntaxen för att jämföra egenskapen WorkingSet . I det här fallet -GT är en parameter, inte en jämförelseoperator. Det andra exemplet använder också ett numeriskt literalsuffix som ett koncist alternativ till 20971520. I PowerShell MB representerar en multiplikator av mebibyte (MiB). 20MB är lika med 20 971 520 byte.

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

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

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

Det andra kommandot dirigerar processobjekten som lagras i variabeln $processes till cmdleten Sort-Object och sedan till cmdleten Format-Table , som formaterar processerna med hjälp av vyn Prioritet .

Exempel 5: Lägg till en egenskap i standardutdatavisningen "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

Det här exemplet hämtar processer från den lokala datorn och rör varje processobjekt till cmdleten Format-Table . Format-Table återskapar standardutdatavisningen för ett processobjekt med hjälp av en blandning av egenskapsnamn och beräknade egenskaper. Visningen innehåller ytterligare en StartTime-egenskap som inte finns i standardvisningen.

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

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

Det här kommandot använder parametern FileVersionInfo för att hämta filversionsinformation för huvudmodulen i pwsh processen. Huvudmodulen är den fil som används för att starta processen, som i det här fallet är pwsh.exe.

Om du vill använda det här kommandot med processer som du inte äger i Windows Vista och senare versioner av Windows måste du köra PowerShell med utökade användarrättigheter (Kör som administratör).

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

Get-Process -Name SQL* -Module

Det här kommandot använder modulparametern för att hämta modulerna som läses in av alla processer med ett namn som börjar med SQL.

Om du vill använda det här kommandot med processer som du inte äger i Windows Vista och senare versioner av Windows måste du köra PowerShell med utökade användarrättigheter (Kör som administratör).

Exempel 8: Hitta ägaren till en process

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

Det första kommandot visar hur du hämtar ägaren till en process. Utdata visar att ägaren är DOMAIN01\user01.

Den andra pipelinen visar ett annat sätt att hämta ägaren till en process med och Get-CimInstanceInvoke-CimMethod. Klassen Win32_Process med ett filter hämtar pwsh processer och den anropade GetOwner() metoden returnerar information om processens domän och användare. Den här metoden är endast tillgänglig i Windows och kräver inte utökade användarrättigheter.

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

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

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 pwsh processer som du kanske vill styra.

Det första kommandot hämtar alla pwsh processer som körs. Det andra kommandot hämtar den pwsh 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 -Property MainWindowTitle |
    Format-Table -Property Id, Name, MainWindowTitle -AutoSize

Den här pipelinen hämtar alla processer som har en huvudfönsterrubrik och visar dem i en tabell med process-ID och namn.

MainWindowTitle är en av många användbara egenskaper för objekttypen Diagnostics.Process som Get-Process returneras. Om du vill visa alla egenskaper använder du Get-Process | Get-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 köra PowerShell med utökade användarrättigheter (Kör som administratör) för att använda den här parametern i processer som du inte äger.

Att använda den här parametern är detsamma som att komma åt egenskapen MainModule.FileVersionInfo för varje processobjekt . När du använder den här parametern Get-Process returnerar ett FileVersionInfo-objekt , inte ett Process-objekt . Du kan inte skicka utdata med den här parametern till en cmdlet som förväntar sig ett processobjekt , till exempel Stop-Process.

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:FV, FVI

Parameteruppsättningar

Name
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
Id
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
InputObject
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Id

Anger en eller flera processer efter process-ID (PID). Du kan ange flera ID:t avgränsade med kommatecken. Om du vill hämta PID för en process använder du Get-Process. Om du vill hämta PID för den aktuella PowerShell-sessionen använder du $PID.

Parameteregenskaper

Typ:

Int32[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:PID

Parameteruppsättningar

Id
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False
IdWithUserName
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-IncludeUserName

Anger att det här kommandot lägger till en UserName-egenskap för varje returnerat Process-objekt .

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

NameWithUserName
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
IdWithUserName
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
InputObjectWithUserName
Position:Named
Obligatorisk:True
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-InputObject

Anger ett eller flera processobjekt . Använd en variabel som innehåller objekten, eller ett kommando eller uttryck som hämtar objekten.

Parameteregenskaper

Typ:

Process[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

InputObject
Position:Named
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
InputObjectWithUserName
Position:Named
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Module

Anger att den här cmdleten hämtar de moduler som processen har läst in.

I Windows Vista och senare versioner av Windows måste du köra PowerShell med utökade användarrättigheter (Kör som administratör) för att använda den här parametern i processer som du inte äger.

Att använda den här parametern är detsamma som att komma åt modulegenskapen för varje processobjekt . När du använder den här parametern Get-Process returnerar ett ProcessModule-objekt , inte ett Process-objekt . Du kan inte skicka utdata med den här parametern till en cmdlet som förväntar sig ett processobjekt , till exempel Stop-Process.

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

Parameteregenskaper

Typ:SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

Name
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
Id
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False
InputObject
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Name

Anger en eller flera processer efter processnamn. Du kan ange flera processnamn avgränsade med kommatecken och använda jokertecken. Det är valfritt att använda parametern -Name .

Parameteregenskaper

Typ:

String[]

Standardvärde:None
Stöder jokertecken:True
DontShow:False
Alias:ProcessName

Parameteruppsättningar

Name
Position:0
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False
NameWithUserName
Position:0
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

Indata

Process

Du kan skicka 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 System.Diagnostics.FileVersionInfo-objekt .

ProcessModule

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

Kommentarer

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

  • Alla plattformar:
    • gps
  • Windows:
    • ps

På datorer som kör 64-bitars Windows hämtar 64-bitarsversionen av PowerShell huvudmodulen och 64-bitars processmodulerna. 32-bitarsversionen av PowerShell hämtar endast 32-bitars processmoduler.

Varning

När du använder Get-Process för att hämta en 64-bitarsprocess i 32-bitarsversionen av PowerShell är $nullegenskaper som Path och MainModule för det returnerade processobjektet . Du måste använda antingen 64-bitarsversionen av PowerShell eller klassen Win32_Process .

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

I Windows kan du använda klassen Windows Management Instrumentation (WMI) Win32_Process i PowerShell som ett alternativ till Get-Process. Mer information finns i:

Standardvisningen av ett processobjekt är en tabellvy som innehåller följande kolumner.

  • NPM(K): Mängden icke-sidiga minne som processen använder i kilobyte.
  • PM(M): Mängden växlingsbart minne som processen använder i megabyte.
  • WS(M): Storleken på arbetsuppsättningen för processen i megabyte. Arbetsuppsättningen består av de minnessidor som nyligen refererades till av processen.
  • processorer: Den mängd processortid som processen har använt på alla processorer i sekunder.
  • ID: Process-ID (PID) för processen.
  • SI: Processens sessions-ID.
  • ProcessName: Namnet på processen.

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

En beskrivning av alla tillgängliga processobjektmedlemmar finns i Processegenskaper och Processmetoder.