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.

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ů rutiny Get-Process 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. Definici 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ává data do rutiny Format-List, která zobrazuje 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. K získání všech spuštěných procesů používá rutinu Get-Process. Operátor kanálu | předá objekty procesu do rutiny Where-Object, která vybere pouze objekt s hodnotou větší než 20 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 proměnné $A.

Druhý příkaz předá objekt Process objekt uložený v proměnné $A do rutiny Get-Process a pak do rutiny Format-Table, která procesy formátuje 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 -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

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

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 používá parametr FileVersionInfo k získání informací 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 načtené 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

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

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á k získání procesu PowerShellu Get-WmiObject. Uloží ho do proměnné $p.

Třetí příkaz používá Metodu GetOwner k získání 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 hostující aktuální relaci 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.

Vlastnost mainWindowTitle je pouze jednou z mnoha užitečných vlastností Process objektu, který Get-Process vrátí. Pokud chcete zobrazit všechny vlastnosti, předáte výsledky příkazu Get-Process do Get-Process | Get-Memberrutiny Get-Member .

Parametry

-ComputerName

Určuje počítače, pro které tato rutina získá aktivní 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č, 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.

Nelze použít parametry FileVersionInfo a ComputerName rutiny Get-Process ve stejném příkazu.

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

Použití tohoto parametru odpovídá získání MainModule.FileVersionInfo vlastnost každého objektu procesu. Při použití tohoto parametru Get-Process vrátí FileVersionInfo objekt System.Diagnostics.FileVersionInfo, nikoli objekt procesu. 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 KÓD 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 Process objektu 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í Modules vlastnost každého objektu procesu. Při použití tohoto parametru vrátí tato rutina ProcessModule objekt 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 použijete parametry Module i FileVersionInfo ve stejném příkazu, 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

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í vrátí tato rutina objekt System.Diagnostics.Process. Pokud použijete parametr FileVersionInfo, vrátí System.Diagnostics.FileVersionInfo objektu. Pokud použijete parametr modulu 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 naleznete 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 Win32_Process objektu WMI (Windows Management Instrumentation). Informace najdete v Get-WmiObject a sadě 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 v knihovně MSDN.
    • 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): Velikost 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ů dostupných s Format-Table, například StartTime a Prioritaa můžete navrhnout vlastní zobrazení.