Get-Process
Hämtar de processer som körs på den lokala datorn eller en fjärrdator.
Syntax
Name (Standard)
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Description
Cmdleten Get-Process hämtar processerna på en lokal dator eller fjärrdator.
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 .
Vyn Prioritet och andra vyer definieras i formatfilerna .ps1xml i PowerShell-hemkatalogen ($PSHOME).
Exempel 5: Lägg till en egenskap i standardutdatavisningen "Get-Process"
Get-Process -Name powershell | Format-Table -Property @(
'Handles'
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(K)'; Expression = { [int] ($_.PM / 1KB) } }
@{ Name = 'WS(K)'; Expression = { [int] ($_.WS / 1KB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName StartTime
------- ------ ----- ----- ------ -- -- ----------- ---------
655 34 69424 83424 2.20 4240 1 powershell 4/14/2025 10:40:10 AM
572 36 68768 57260 7.41 4968 1 powershell 4/13/2025 3:33:50 PM
405 26 38144 30340 1.80 8776 1 powershell 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 powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
10.0.19041.320 10.0.19041.32... C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Det här kommandot använder parametern FileVersionInfo för att hämta filversionsinformation för huvudmodulen i powershell processen. Huvudmodulen är den fil som används för att starta processen, som i det här fallet är powershell.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 powershell -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
Get-CimInstance -ClassName Win32_Process -Filter "name='powershell.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. Parametern IncludeUserName kräver utökade användarrättigheter (Kör som administratör). 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 powershell processer och den anropade GetOwner() metoden returnerar information om processens domän och användare. Den här metoden 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 powershell
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
561 44 47564 40740 6.48 2604 1 powershell
642 40 72040 24372 23.53 3576 1 powershel
Get-Process -Id $PID
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
647 40 72464 30716 23.67 3576 1 powershell
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 styra.
Det första kommandot hämtar alla powershell processer som körs. 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 -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
-ComputerName
Anger de datorer som den här cmdleten får köra processer för. Standardvärdet är den lokala datorn.
Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn (FQDN) för en eller flera datorer. Om du vill ange den lokala datorn använder du datornamnet, en punkt (.) eller localhost.
Den här parametern förlitar sig inte på Windows PowerShell-fjärrkommunikation. Du kan använda parametern ComputerName för den här cmdleten även om datorn inte är konfigurerad för att köra fjärrkommandon.
Parameteregenskaper
| Typ: | String[] |
| Standardvärde: | Local computer |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | Cn |
Parameteruppsättningar
Name
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| 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: | True |
| 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: | True |
| Värde från återstående argument: | False |
-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.
Du kan inte använda parametrarna FileVersionInfo och ComputerName tillsammans.
Om du vill hämta filversionsinformation för en process på en fjärrdator använder du cmdleten Invoke-Command.
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
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 |
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 |
-IncludeUserName
Anger att det här kommandot lägger till en UserName-egenskap för varje returnerat Process-objekt .
Du måste köra PowerShell med utökade användarrättigheter (Kör som administratör) för att använda den här parametern.
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
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 |
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 |
-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.
Använd cmdleten Invoke-Command för att hämta modulerna som läses in av en process på en fjärrdator.
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
Windows PowerShell innehåller följande alias för Get-Process:
gpsps
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.
Du kan 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.
- Hanterar: Antalet referenser 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.
- 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.