Get-Process

Získá procesy spuštěné v místním počítači.

Syntax

Get-Process
   [[-Name] <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   [[-Name] <String[]>]
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   -IncludeUserName
   [<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ě.

Ve výchozím nastavení tato rutina 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. Používá parametr Name k určení procesů, ale vynechá volitelný název parametru. Operátor kanálu (|) předá data rutině Format-List , která zobrazí všechny dostupné vlastnosti (*) objektů procesu Winword a Průzkumníka.

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ž zadanou 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á pro vlastnost WorkingSet vybere pouze objekt s hodnotou větší než 20 000 000 bajtů.

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é Get-Process do rutiny a potom 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 pwsh | 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 .           pwsh
     6 23500 31348   142 2.75   4016 .           pwsh
    27 54572 54520   576 5.52   4428 .           pwsh

Tento příklad načte procesy z místního počítače a vzdáleného počítače (S1). Načtené procesy jsou směrovány do Format-Table příkazu, který přidá vlastnost MachineName do standardního Get-Process zobrazení výstupu.

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

Get-Process pwsh -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.2            6.1.2            C:\Program Files\PowerShell\6\pwsh.exe

Tento příkaz používá parametr FileVersionInfo k získání informací o verzi souboru pwsh.exe , který je hlavním modulem pro proces 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 používá parametr Module k získání modulů, 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     pwsh

Tento příkaz ukazuje, jak najít vlastníka procesu. Parametr IncludeUserName ve Windows vyžaduje zvýšená uživatelská práva (Spustit jako správce). 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 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

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ý hostuje 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 {$_.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 rutině Get-MemberGet-Process | Get-Member.

Parametry

-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 otevřít PowerShell s možností Spustit jako správce , abyste mohli tento parametr použít u procesů, které nevlastníte.

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 ekvivalentem získání MainModule.FileVersionInfo vlastnost každého objektu procesu. Při použití tohoto parametru vrátí Get-ProcessFileVersionInfo objekt System.Diagnostics.FileVersionInfo, nikoli objekt procesu. Výstup příkazu tedy nelze převést do rutiny, která očekává objekt procesu, například Stop-Process.

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int32[]
Aliases:PID
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-IncludeUserName

Označuje, že hodnota UserName objektu Process je vrácena s výsledky příkazu.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

Type:Process[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters: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 musíte otevřít PowerShell s možností 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 .

Tento parametr je ekvivalentní k získání vlastnosti Modules každého objektu procesu. Při použití tohoto parametru tato rutina vrátí objekt ProcessModuleSystem.Diagnostics.ProcessModule, nikoli objekt procesu. Výstup příkazu tedy nelze převést do rutiny, 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ů.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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ý.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

Vstupy

Process

Objekt procesu můžete do této rutiny převést.

Výstupy

System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule

Ve výchozím nastavení tato rutina vrátí objekt System.Diagnostics.Process . Pokud použijete parametr FileVersionInfo , vrátí system.Diagnostics.FileVersionInfo objekt. Pokud použijete parametr Module bez parametru FileVersionInfo , vrátí system.Diagnostics.ProcessModule objekt.

Poznámky

  • Tuto rutinu můžete také odkazovat pomocí předdefinovaných aliasů ps a gps. Další informace najdete v tématu about_Aliases.
  • 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.
  • V PowerShellu můžete použít vlastnosti a metody objektu WMI (Windows Management Instrumentation) Win32_Process . Informace najdete v sadě Get-WmiObject WMI SDK.
  • Výchozí zobrazení procesu je tabulka, která obsahuje následující sloupce. Popis všech vlastností procesních objektů naleznete v tématu Vlastnosti procesu.
    • Popisovače: Počet popisovačů, které proces otevřel.
    • NPM(K): Množství nestránkové 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 kilobajtů. Pracovní sada se skládá ze stránek paměti, na které proces nedávno odkazoval.
    • 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 nápovědy pro Správce úloh.
  • Můžete také použít předdefinovaná alternativní zobrazení procesů, které jsou k dispozici, Format-Tablenapříklad StartTime a Priorita, a můžete navrhnout vlastní zobrazení.