Get-Process
Získá procesy, které jsou spuštěny v místním počítači nebo vzdáleném počítači.
Syntaxe
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
Rutina Get-Process
získá procesy na místním nebo vzdáleném počítači.
Bez parametrů získá tato rutina všechny procesy v místním počítači. Konkrétní proces můžete také zadat podle názvu procesu nebo ID procesu (PID) nebo předat objekt procesu prostřednictvím kanálu této rutině.
Tato rutina ve výchozím nastavení vrátí objekt procesu, který obsahuje podrobné informace o procesu a podporuje metody, které umožňují spustit a zastavit proces. Pomocí parametrů Get-Process
rutiny můžete také získat informace o verzi souboru pro program, který se spouští v procesu, a získat moduly, které proces načetl.
Příklady
Příklad 1: Získání seznamu všech aktivních procesů v místním počítači
Get-Process
Tento příkaz získá seznam všech aktivních procesů spuštěných v místním počítači. Definice jednotlivých sloupců najdete v části Poznámky .
Příklad 2: Získání všech dostupných dat o jednom nebo několika procesech
Get-Process winword, explorer | Format-List *
Tento příkaz získá všechna dostupná data o procesech Winword a Explorer v počítači. K určení procesů používá parametr Name , ale vynechá volitelný název parametru. Operátor kanálu (|
) předá data do Format-List
rutiny, která zobrazí všechny dostupné vlastnosti (*
) objektů procesu Winword a Explorer.
Procesy můžete identifikovat také podle JEJICH ID procesů. Například Get-Process -Id 664, 2060
.
Příklad 3: Získání všech procesů s pracovní sadou větší než zadaná velikost
Get-Process | Where-Object {$_.WorkingSet -gt 20000000}
Tento příkaz získá všechny procesy, které mají pracovní sadu větší než 20 MB. Používá rutinu Get-Process
k získání všech spuštěných procesů. Operátor kanálu (|
) předá objekty procesu rutině Where-Object
, která vybere pouze objekt s hodnotou větší než 20 000 000 000 bajtů pro vlastnost WorkingSet .
WorkingSet je jednou z mnoha vlastností procesních objektů. Chcete-li zobrazit všechny vlastnosti, zadejte Get-Process | Get-Member
. Ve výchozím nastavení jsou hodnoty všech vlastností množství v bajtech, i když je výchozí zobrazení uvádí v kilobajtech a megabajtech.
Příklad 4: Výpis procesů v počítači ve skupinách na základě priority
$A = Get-Process
$A | Get-Process | Format-Table -View priority
Tyto příkazy uvádějí procesy v počítači ve skupinách na základě jejich třídy priority. První příkaz získá všechny procesy v počítači a pak je uloží do $A
proměnné.
Druhý příkaz předá objekt Process uložený v $A
proměnné do Get-Process
rutiny a pak do Format-Table
rutiny, která naformátuje procesy pomocí zobrazení Priorita .
Zobrazení Priorita a další zobrazení jsou definovány ve formátových souborech PS1XML v domovském adresáři PowerShellu ($pshome
).
Příklad 5: Přidání vlastnosti do standardního zobrazení výstupu Get-Process
Get-Process powershell | 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 powershell 12/5/2022 3:21:51 PM
114 61776 104588 2366127 11.45 18336 powershell 12/5/2022 7:30:53 AM
156 77924 82060 2366185 10.47 18812 powershell 12/5/2022 7:30:52 AM
85 48216 115192 2366074 1.14 24428 powershell 12/8/2022 9:14:15 AM
Tento příklad načte procesy z místního počítače. Načtené procesy se předávají do Format-Table
příkazu, který přidá vlastnost StartTime do standardního Get-Process
zobrazení výstupu.
Příklad 6: Získání informací o verzi procesu
Get-Process powershell -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
Tento příkaz pomocí parametru FileVersionInfo získá informace o verzi souboru powershell.exe
, který je hlavním modulem procesu PowerShellu.
Chcete-li spustit tento příkaz s procesy, které nevlastníte ve Windows Vista a novějších verzích Windows, musíte otevřít PowerShell s možností Spustit jako správce .
Příklad 7: Načtení modulů načtených se zadaným procesem
Get-Process SQL* -Module
Tento příkaz pomocí parametru Module získá moduly, které byly načteny procesem.
Tento příkaz získá moduly pro procesy, které mají názvy začínající SQL
.
Pokud chcete tento příkaz spustit ve Windows Vista a novějších verzích Windows s procesy, které nevlastníte, musíte spustit PowerShell s možností Spustit jako správce .
Příklad 8: Vyhledání vlastníka procesu
Get-Process pwsh -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
První příkaz ukazuje, jak najít vlastníka procesu. Parametr IncludeUserName vyžaduje zvýšená uživatelská práva (Spustit jako správce). Výstup ukazuje, že vlastník je Domain01\user01
.
Druhý a třetí příkaz je dalším způsobem, jak najít vlastníka procesu.
Druhý příkaz používá Get-WmiObject
k získání procesu PowerShellu.
Uloží ji do $p
proměnné.
Třetí příkaz používá GetOwner metoda získat vlastníka procesu v $p
. Výstup ukazuje, že vlastník je Domain01\user01
.
Příklad 9: Použití automatické proměnné k identifikaci procesu hostujícího aktuální relaci
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
Tyto příkazy ukazují, jak pomocí $PID
automatické proměnné identifikovat proces, který je hostitelem aktuální relace PowerShellu. Tuto metodu můžete použít k rozlišení hostitelského procesu od jiných procesů PowerShellu, které můžete chtít zastavit nebo zavřít.
První příkaz získá všechny procesy PowerShellu v aktuální relaci.
Druhý příkaz získá proces PowerShellu, který je hostitelem aktuální relace.
Příklad 10: Získání všech procesů s názvem hlavního okna a jejich zobrazení v tabulce
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize
Tento příkaz získá všechny procesy, které mají název hlavního okna, a zobrazí je v tabulce s ID procesu a názvem procesu.
MainWindowTitle vlastnost je pouze jednou z mnoha užitečných vlastností Process objektu, který Get-Process
vrací. Pokud chcete zobrazit všechny vlastnosti, předáte výsledky Get-Process
příkazu do rutiny Get-Member
Get-Process | Get-Member
.
Parametry
-ComputerName
Určuje počítače, pro které tato rutina získá aktivní procesy. Ve výchozím nastavení je to místní počítač.
Zadejte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény (FQDN) jednoho nebo více počítačů. Chcete-li zadat místní počítač, zadejte název počítače, tečku (.
) nebo localhost
.
Tento parametr nespoléhá na vzdálené komunikace Windows PowerShellu. Parametr ComputerName této rutiny můžete použít i v případě, že váš počítač není nakonfigurovaný tak, aby spouštět vzdálené příkazy.
Typ: | String[] |
Aliasy: | Cn |
Position: | Named |
Default value: | Local computer |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-FileVersionInfo
Označuje, že tato rutina získá informace o verzi souboru pro program, který běží v procesu.
Ve Windows Vista a novějších verzích Windows je nutné otevřít PowerShell s možností Spustit jako správce , pokud chcete tento parametr použít u procesů, které nevlastníte.
Ve stejném příkazu nelze použít parametry Get-Process
FileVersionInfo a ComputerName rutiny.
Pokud chcete získat informace o verzi souboru pro proces na vzdáleném počítači, použijte rutinu Invoke-Command
.
Použití tohoto parametru je ekvivalentní získání MainModule.FileVersionInfo vlastnost každého objektu procesu. Při použití tohoto parametru vrátí Get-Process
FileVersionInfo objekt System.Diagnostics.FileVersionInfo, nikoli procesní objekt. Výstup příkazu tedy nelze převést na rutinu, která očekává objekt procesu, například Stop-Process
.
Typ: | SwitchParameter |
Aliasy: | FV, FVI |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Id
Určuje jeden nebo více procesů podle ID procesu (PID). Pokud chcete zadat více ID, oddělte ID čárkami. Chcete-li najít PID procesu, zadejte Get-Process
.
Typ: | Int32[] |
Aliasy: | PID |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-IncludeUserName
Označuje, že hodnota UserName objektu Process je vrácena s výsledky příkazu.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-InputObject
Určuje jeden nebo více objektů procesu. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá.
Typ: | Process[] |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Module
Označuje, že tato rutina získá moduly, které byly načteny procesy.
Ve Windows Vista a novějších verzích Windows je nutné otevřít PowerShell s možností Spustit jako správce , pokud chcete tento parametr použít u procesů, které nevlastníte.
Pokud chcete získat moduly načtené procesem ve vzdáleném počítači, použijte rutinu Invoke-Command
.
Tento parametr je ekvivalentní získání vlastnosti Modules každého objektu procesu. Při použití tohoto parametru vrátí tato rutina objekt ProcessModule System.Diagnostics.ProcessModule, nikoli objekt procesu. Výstup příkazu tedy nelze převést na rutinu, která očekává objekt procesu, například Stop-Process
.
Pokud ve stejném příkazu použijete parametry Module i FileVersionInfo , vrátí tato rutina objekt FileVersionInfo s informacemi o verzi souboru všech modulů.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Name
Určuje jeden nebo více procesů podle názvu procesu. Můžete zadat více názvů procesů (oddělené čárkami) a použít zástupné znaky. Název parametru (Name
) je volitelný.
Typ: | String[] |
Aliasy: | ProcessName |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
Vstupy
Objekt procesu můžete do této rutiny převést.
Výstupy
Ve výchozím nastavení vrátí tato rutina objekt System.Diagnostics.Process .
Pokud použijete fileVersionInfo parametr, tato rutina vrátí FileVersionInfo objekt.
Pokud použijete parametr Module bez parametru FileVersionInfo , vrátí tato rutina objekt ProcessModule .
Poznámky
Windows PowerShell obsahuje následující aliasy pro Get-Process
:
gps
ps
V počítačích se 64bitovou verzí Windows získá 64bitová verze PowerShellu pouze 64bitové moduly procesu a 32bitová verze PowerShellu získá pouze 32bitové moduly procesu.
Pokud chcete získat informace o procesu ze vzdáleného počítače, použijte tuto rutinu Invoke-Command
. Další informace naleznete v tématu Invoke-Command.
V PowerShellu můžete použít vlastnosti a metody Win32_Process objektu WMI (Windows Management Instrumentation). Informace najdete v tématu Win32_Process.
Výchozí zobrazení procesu je tabulka, která obsahuje následující sloupce. Popis všech vlastností procesních objektů naleznete v části Vlastnosti procesu.
- Popisovače: Počet popisovačů, které proces otevřel.
- NPM(K): Množství nestránkované paměti, kterou proces používá, v kilobajtech.
- PM(K): Množství stránkovatelné paměti, kterou proces používá, v kilobajtech.
- WS(K): Velikost pracovní sady procesu v kilobajtech. Pracovní sada se skládá ze stránek paměti, na které byl v nedávné době odkazován procesem.
- VM(M): Množství virtuální paměti, kterou proces používá, v megabajtech. Virtuální paměť zahrnuje úložiště ve stránkovacích souborech na disku.
- Procesory: Doba procesoru, kterou proces použil na všech procesorech v sekundách.
- ID: ID procesu (PID) procesu.
- ProcessName: Název procesu. Vysvětlení konceptů souvisejících s procesy najdete v glosáři v Centru nápovědy a podpory a v nápovědě pro Správce úloh.
Můžete také použít integrovaná alternativní zobrazení procesů, které jsou k dispozici Format-Table
, například StartTime a Priority, a můžete navrhnout vlastní zobrazení.