Get-Process
Hämtar de processer som körs på den lokala datorn eller en fjärrdator.
Syntax
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
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 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 Name 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 dirigerar Process-objektet som lagras i $A
-variabeln till cmdleten Get-Process
och sedan till cmdleten Format-Table
, som formaterar processerna med hjälp av vyn Priority.
Vyn Priority och andra vyer definieras i PS1XML-formatfilerna i PowerShell-hemkatalogen ($pshome
).
Exempel 5: Lägg till en egenskap i standardutdatavisningen Get-Process
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
Det här exemplet hämtar processer från den lokala datorn och en fjärrdator (S1).
De hämtade processerna skickas till kommandot Format-Table
som lägger till egenskapen MachineName till standardutdatavisningen för Get-Process
.
Exempel 6: Hämta versionsinformation för en process
Get-Process powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Det här kommandot använder parametern FileVersionInfo för att hämta versionsinformationen för den powershell.exe fil 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 parametern Module 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
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
Det första kommandot visar hur du hittar ä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.
Det andra och tredje kommandot är ett annat sätt att hitta ägaren till en process.
Det andra kommandot använder Get-WmiObject
för att hämta PowerShell-processen.
Den sparar den i variabeln $p.
Det tredje kommandot använder metoden GetOwner för att hämta processens ägare i $p. 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 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
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 objektet Process som Get-Process
returnerar.
Om du vill visa alla egenskaper dirigerar du resultatet av ett Get-Process
-kommando till cmdleten Get-Member
Get-Process | Get-Member
.
Parametrar
-ComputerName
Anger de datorer som cmdleten hämtar aktiva 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 skriver 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.
Typ: | String[] |
Alias: | Cn |
Position: | Named |
Standardvärde: | Local computer |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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 ö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.
Du kan inte använda parametrarna FileVersionInfo och ComputerName för cmdleten Get-Process
i samma kommando.
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 motsvarar att hämta egenskapen MainModule.FileVersionInfo för varje processobjekt.
När du använder den här parametern returnerar Get-Process
ett FileVersionInfo--objekt System.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
.
Typ: | SwitchParameter |
Alias: | FV, FVI |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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
.
Typ: | Int32[] |
Alias: | PID |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-IncludeUserName
Anger att username-värdet för objektet Process returneras med resultatet av kommandot.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-InputObject
Anger ett eller flera processobjekt. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.
Typ: | Process[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | 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.
Om du vill hämta modulerna som har lästs in av en process på en fjärrdator använder du cmdleten Invoke-Command
.
Den här parametern motsvarar att hämta egenskapen Modules för varje processobjekt.
När du använder den här parametern returnerar den här cmdleten ett ProcessModule--objekt System.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 Module och FileVersionInfo i samma kommando returnerar den här cmdleten ett FileVersionInfo--objekt med information om filversionen av alla moduler.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Name
Anger en eller flera processer efter processnamn. Du kan skriva flera processnamn (avgränsade med kommatecken) och använda jokertecken. Parameternamnet ("Namn") är valfritt.
Typ: | String[] |
Alias: | ProcessName |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
Indata
Du kan skicka ett processobjekt till den här cmdleten.
Utdata
System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule
Som standard returnerar den här cmdleten ett System.Diagnostics.Process--objekt. Om du använder parametern FileVersionInfo returneras ett System.Diagnostics.FileVersionInfo-objekt. Om du använder parametern Module, utan parametern FileVersionInfo, returneras ett System.Diagnostics.ProcessModule-objekt.
Kommentarer
- Du kan också referera till denna cmdlet med dess inbyggda alias, ps och gps. Mer information finns i about_Aliases.
- 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.
- Du kan använda egenskaperna och metoderna för WMI-objektet (Windows Management Instrumentation) Win32_Process i PowerShell. Mer information finns i
Get-WmiObject
och WMI SDK. - Standardvisningen av en process är en tabell som innehåller följande kolumner. En beskrivning av alla egenskaper för processobjekt finns i Processegenskaper i MSDN-biblioteket.
- 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(er): 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 Priority, och du kan utforma dina egna vyer.