Sdílet prostřednictvím


Get-Process

Získá procesy, které jsou spuštěny v místním počítači nebo vzdáleném počítači.

Syntax

Name (Výchozí)

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

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 propojením objektu System.Diagnostics.Process do této rutiny.

Ve výchozím nastavení vrátí tato rutina objekt Process , který obsahuje podrobné informace o procesu a podporuje metody, které vám umožňují řídit. Pomocí parametrů můžete změnit typ informací vrácených touto rutinou.

  • Modul: Načtěte informace pro každý modul načtený do procesu.
  • FileVersionInfo: Načtěte informace o verzi souboru pro hlavní modul procesu.

Poznámka:

Modul je spustitelný soubor nebo dynamická knihovna odkazů (DLL) načtená do procesu. Proces má jeden nebo více modulů. Hlavním modulem je modul, který se používá k počátečnímu spuštění procesu. Další informace naleznete v tématu ProcessModule – třída.

Příklady

Příklad 1: Získání seznamu všech spuštěných procesů v místním počítači

Get-Process

Tento příkaz získá seznam všech spuštěných procesů v místním počítači. Definici jednotlivých zobrazených sloupců najdete v části POZNÁMKY .

Chcete-li zobrazit všechny vlastnosti objektu Process , použijte Get-Process | Get-Member. PowerShell ve výchozím nastavení zobrazuje určité hodnoty vlastností pomocí jednotek, jako jsou kilobajtů (K) a megabajty (M). Skutečné hodnoty při přístupu pomocí operátoru přístupu člena (.) jsou v bajtech.

Příklad 2: Zobrazení podrobných informací o jednom nebo více procesech

Get-Process winword, explorer | Format-List *

Tento kanál zobrazí podrobné informace o procesech winword v explorer počítači. K určení procesů používá parametr Name, ale vynechá volitelný název parametru. Operátor kanálu (|) kanály Process objekty do Format-List rutiny, která zobrazí všechny dostupné vlastnosti (*) a jejich hodnoty pro každý objekt.

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

Rutina Get-Process vrátí spuštěné procesy. Výstup se předá rutině Where-Object , která vybere objekty s hodnotou WorkingSet větší než 20 971 520 bajtů.

V prvním příkladu Where-Object používá skriptblock k porovnání WorkingSet vlastnost každého Process objektu. V druhém příkladu Where-Object rutina používá zjednodušenou syntaxi k porovnání vlastnosti WorkingSet . V tomto případě -GT je parametr, nikoli relační operátor. Druhý příklad také používá číselnou literálovou příponu jako stručnou alternativu k 20971520. V PowerShellu představuje MB násobitel mebibajtů (MiB). 20MB se rovná 20 971 520 bajtům.

Příklad 4: Zobrazení procesů v počítači ve skupinách na základě priority

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

Tyto příkazy zobrazují 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 uloží je do $processes proměnné.

Druhý příkaz předá objekty Process uložené v $processes proměnné do Sort-Object 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 .ps1xml souborech v domovském adresáři PowerShellu ($PSHOME).

Příklad 5: Přidání vlastnosti do výchozího zobrazení výstupu 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

Tento příklad načte procesy z místního počítače a všechny objekty Process načte do rutiny Format-Table . Format-Table Znovu vytvoří výchozí zobrazení výstupu objektu Process pomocí kombinace názvů vlastností a počítaných vlastností. Zobrazení obsahuje další vlastnost StartTime , která není k dispozici ve výchozím zobrazení.

Příklad 6: Získání informací o verzi procesu

Get-Process -Name powershell -FileVersionInfo
ProductVersion   FileVersion      FileName
--------------   -----------      --------
10.0.19041.320   10.0.19041.32... C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Tento příkaz používá parametr FileVersionInfo k získání informací o verzi souboru pro hlavní modul powershell procesu. Hlavním modulem je soubor použitý ke spuštění procesu, což je powershell.exev tomto případě .

Pokud chcete tento příkaz použít s procesy, které nevlastníte ve Windows Vista a novějších verzích Windows, musíte spustit PowerShell se zvýšenými uživatelskými právy (Spustit jako správce).

Příklad 7: Načtení modulů načtených se zadaným procesem

Get-Process -Name SQL* -Module

Tento příkaz pomocí parametru Module získá moduly načtené všemi procesy s názvem začínajícím na SQL.

Pokud chcete tento příkaz použít s procesy, které nevlastníte ve Windows Vista a novějších verzích Windows, musíte spustit PowerShell se zvýšenými uživatelskými právy (Spustit jako správce).

Příklad 8: Vyhledání vlastníka procesu

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

První příkaz ukazuje, jak získat 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ý kanál ukazuje jiný způsob, jak získat vlastníka procesu pomocí Get-CimInstance a Invoke-CimMethod. Třída Win32_Process s filtrem načte powershell procesy a vyvolaná GetOwner() metoda vrátí informace o doméně a uživateli procesu. Tato metoda nevyžaduje zvýšená uživatelská práva.

Příklad 9: Použití automatické proměnné k identifikaci procesu hostujícího aktuální relaci

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

Tyto příkazy ukazují, jak použít $PID automatickou proměnnou k identifikaci procesu hostujícího aktuální relaci PowerShellu. Tuto metodu můžete použít k rozlišení hostitelského procesu od jiných powershell procesů, které můžete chtít řídit.

První příkaz načte všechny powershell spuštěné procesy. Druhý příkaz získá powershell proces hostující aktuální relaci.

Příklad 10: Získání všech procesů s názvem hlavního okna a jejich zobrazení v tabulce

Get-Process |
    Where-Object -Property MainWindowTitle |
    Format-Table -Property Id, Name, MainWindowTitle -AutoSize

Tento kanál získá všechny procesy, které mají název hlavního okna, a zobrazí je v tabulce s ID a názvem procesu.

MainWindowTitle je jednou z mnoha užitečných vlastností typu Diagnostics.Process objektu, který Get-Process vrací. Chcete-li zobrazit všechny vlastnosti, použijte Get-Process | Get-Member.

Parametry

-ComputerName

Určuje počítače, pro které tato rutina spouští procesy. Výchozí hodnota je 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č, použijte 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.

Vlastnosti parametru

Typ:

String[]

Default value:Local computer
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Kn

Sady parametrů

Name
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False
Id
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False
InputObject
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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 musíte spustit PowerShell se zvýšenými uživatelskými právy (Spustit jako správce), abyste mohli tento parametr použít u procesů, které nevlastníte.

Parametry FileVersionInfo a ComputerName nemůžete používat společně.

Informace o verzi souboru pro proces na vzdáleném počítači získáte pomocí rutiny Invoke-Command.

Použití tohoto parametru je stejné jako přístup k MainModule.FileVersionInfo vlastnost každého Process objektu. Při použití tohoto parametru vrátí Get-ProcessFileVersionInfo objekt, nikoli Process objekt. Výstup vytvořený pomocí tohoto parametru nelze převést na rutinu, která očekává objekt Process , například Stop-Process.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:FV, FVI

Sady parametrů

Name
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
Id
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
InputObject
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Id

Určuje jeden nebo více procesů podle ID procesu (PID). Můžete zadat více ID oddělených čárkami. Chcete-li získat PID procesu, použijte Get-Process. K získání PID aktuální relace PowerShellu použijte $PID.

Vlastnosti parametru

Typ:

Int32[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:identifikátor PID

Sady parametrů

IdWithUserName
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False
Id
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-IncludeUserName

Označuje, že tento příkaz přidá vlastnost UserName do každého vráceného objektu Process .

Abyste mohli tento parametr použít, musíte spustit PowerShell se zvýšenými uživatelskými právy (Spustit jako správce).

Vlastnosti parametru

Typ:SwitchParameter
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

NameWithUserName
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
IdWithUserName
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
InputObjectWithUserName
Position:Named
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-InputObject

Určuje jeden nebo více objektů procesu . Použijte proměnnou, která obsahuje objekty, nebo příkaz nebo výraz, který objekty získá.

Vlastnosti parametru

Typ:

Process[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

InputObjectWithUserName
Position:Named
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
InputObject
Position:Named
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Module

Označuje, že tato rutina získá moduly, které proces načetl.

Ve Windows Vista a novějších verzích Windows musíte spustit PowerShell se zvýšenými uživatelskými právy (Spustit jako správce), abyste mohli tento parametr použít u procesů, které nevlastníte.

Pokud chcete získat moduly načtené procesem na vzdáleném počítači, použijte rutinu Invoke-Command .

Použití tohoto parametru je stejné jako přístup k module vlastnost každého process objektu. Při použití tohoto parametru vrátí Get-ProcessProcessModule objekt, nikoli Process Object. Výstup vytvořený pomocí tohoto parametru nelze převést na rutinu, která očekává objekt Process , například Stop-Process.

Pokud společně použijete parametry Module i FileVersionInfo , vrátí tato rutina objekt FileVersionInfo s informacemi o verzi souboru všech modulů.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

Name
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
Id
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False
InputObject
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Name

Určuje jeden nebo více procesů podle názvu procesu. Můžete zadat více názvů procesů oddělených čárkami a použít zástupné znaky. Použití parametru -Name je volitelné.

Vlastnosti parametru

Typ:

String[]

Default value:None
Podporuje zástupné znaky:True
DontShow:False
Aliasy:ProcessName

Sady parametrů

Name
Position:0
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False
NameWithUserName
Position:0
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

Process

Objekty Process můžete do této rutiny převést.

Výstupy

Process

Ve výchozím nastavení vrátí tato rutina objekt System.Diagnostics.Process.

FileVersionInfo

Pokud používáte fileVersionInfo parametr, tato rutina vrátí System.Diagnostics.FileVersionInfo objekt.

ProcessModule

Pokud použijete parametr Module bez parametru FileVersionInfo , vrátí tato rutina objekt System.Diagnostics.ProcessModule .

Poznámky

Windows PowerShell obsahuje následující aliasy pro Get-Process:

  • gps
  • ps

V počítačích s 64bitovým systémem Windows získá 64bitová verze PowerShellu hlavní modul a 64bitové moduly procesu. 32bitová verze PowerShellu získá pouze 32bitové moduly procesu.

Výstraha

Pokud používáte Get-Process k získání 64bitového procesu v 32bitové verzi PowerShellu, vlastnosti Path jako a MainModule vrácený objekt Process jsou $null. Musíte použít buď 64bitovou verzi PowerShellu, nebo třídu Win32_Process .

Pokud chcete získat informace o procesu ze vzdáleného počítače, použijte rutinu Invoke-Command. Další informace naleznete v tématu Invoke-Command.

Jako alternativu k Get-Processtéto třídě můžete v PowerShellu použít třídu WMI (Windows Management Instrumentation) Win32_Process . Další informace najdete tady:

Výchozí zobrazení objektu Process je zobrazení tabulky, které obsahuje následující sloupce.

  • popisovačů: 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.
  • procesorů: Doba procesoru, kterou proces použil na všech procesorech v sekundách.
  • ID: ID procesu (PID) procesu.
  • SI: ID relace procesu.
  • ProcessName: Název procesu.

Můžete použít předdefinovaná alternativní zobrazení pro objekty procesu , které jsou k dispozici, Format-Tablenapříklad StartTime a Priority. Můžete také navrhnout vlastní zobrazení.

Popis všech dostupných členů objektu Proces naleznete v části Vlastnosti procesu a Metody procesu.