Megosztás a következőn keresztül:


Get-Process

Lekéri a helyi számítógépen vagy egy távoli számítógépen futó folyamatokat.

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

A Get-Process parancsmag lekéri a folyamatokat egy helyi vagy távoli számítógépen.

Paraméterek nélkül ez a parancsmag minden folyamatot lekéri a helyi számítógépen. Megadhat egy adott folyamatot folyamatnév vagy folyamatazonosító (PID) alapján is, vagy átadhat egy folyamatobjektumot a folyamaton keresztül ennek a parancsmagnak.

Ez a parancsmag alapértelmezés szerint egy folyamatobjektumot ad vissza, amely részletes információkat tartalmaz a folyamatról, és támogatja azokat a metódusokat, amelyek lehetővé teszik a folyamat elindítását és leállítását. A parancsmag paramétereit is használhatja a Get-Process folyamatban futó program fájlverzió-információinak lekéréséhez és a folyamat által betöltött modulok lekéréséhez.

Példák

1. példa: A helyi számítógépen található összes aktív folyamat listájának lekérése

Get-Process

Ez a parancs lekéri a helyi számítógépen futó összes aktív folyamat listáját. Az egyes oszlopok definícióját a Megjegyzések szakaszban találja.

2. példa: Az összes elérhető adat lekérése egy vagy több folyamatról

Get-Process winword, explorer | Format-List *

Ez a parancs lekéri a winword és explorer folyamatokkal kapcsolatos összes rendelkezésre álló adatot a számítógépen. A Név paramétert használja a folyamatok megadásához, de kihagyja a választható paraméternevet. A folyamatkezelő (|) átadja az adatokat a Format-List parancsmagnak, amely megjeleníti a Winword és az Explorer folyamatobjektumok összes elérhető tulajdonságát (*).

A folyamatokat a folyamatazonosítók alapján is azonosíthatja. Például: Get-Process -Id 664, 2060.

3. példa: A megadott méretnél nagyobb munkakészlettel rendelkező összes folyamat lekérése

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

Ez a parancs lekéri az összes olyan folyamatot, amely 20 MB-nál nagyobb munkakészlettel rendelkezik. A parancsmagot használja az Get-Process összes futó folyamat lekéréséhez. A folyamatkezelő (|) átadja a folyamatobjektumokat a Where-Object parancsmagnak, amely csak a 20 000 000 bájtnál nagyobb értékkel rendelkező objektumot választja ki a WorkingSet tulajdonsághoz.

A WorkingSet a folyamatobjektumok számos tulajdonságának egyike. Az összes tulajdonság megtekintéséhez írja be a következőt Get-Process | Get-Member: . Alapértelmezés szerint az összes mennyiségtulajdonság értéke bájtban van, annak ellenére, hogy az alapértelmezett megjelenítés kilobájtban és megabájtban jeleníti meg őket.

4. példa: Folyamatok listázása a számítógépen prioritás alapján csoportokban

$A = Get-Process
$A | Get-Process | Format-Table -View priority

Ezek a parancsok a prioritási osztályuk alapján csoportokba sorolják a számítógépen lévő folyamatokat. Az első parancs lekéri az összes folyamatot a számítógépen, majd tárolja őket a $A változóban.

A második parancs a változóban $A tárolt Folyamat objektumot a Get-Process parancsmaghoz, majd a Format-Table parancsmaghoz irányítja, amely a Prioritás nézet használatával formázza a folyamatokat.

A Prioritás nézet és más nézetek a PowerShell kezdőlapjának ($pshome)PS1XML formátumú fájljaiban vannak definiálva.

5. példa: Tulajdonság hozzáadása a szabványos Get-Process kimeneti megjelenítéshez

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

Ez a példa lekéri a folyamatokat a helyi számítógépről. A rendszer a lekért folyamatokat arra a Format-Table parancsra irányítja, amely hozzáadja a StartTime tulajdonságot a szabványos Get-Process kimeneti megjelenítéshez.

6. példa: Verzióinformációk lekérése egy folyamathoz

Get-Process powershell -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.6713.1       6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Ez a parancs a FileVersionInfo paramétert használja annak a fájlnak a verzióadatainak lekéréséhez powershell.exe , amely a PowerShell-folyamat fő modulja.

Ha olyan folyamatokkal szeretné futtatni ezt a parancsot, amelyek nem a Windows Vista és a Windows újabb verzióiban érhetők el, a PowerShellt a Futtatás rendszergazdaként lehetőséggel kell megnyitnia.

7. példa: Modulok betöltése a megadott folyamattal

Get-Process SQL* -Module

Ez a parancs a Modul paramétert használja a folyamat által betöltött modulok lekéréséhez. Ez a parancs lekéri azoknak a folyamatoknak a moduljait, amelyek nevével SQLkezdődnek.

Ha ezt a parancsot a Windows Vista és a Windows újabb verzióiban nem saját folyamatokkal szeretné futtatni, a PowerShellt a Futtatás rendszergazdaként lehetőséggel kell elindítania.

8. példa: Folyamat tulajdonosának megkeresése

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

Az első parancs bemutatja, hogyan keresheti meg a folyamat tulajdonosát. Az IncludeUserName paraméter emelt szintű felhasználói jogosultságot igényel (futtatás rendszergazdaként). A kimenetből kiderül, hogy a tulajdonos .Domain01\user01

A második és a harmadik parancs egy másik módszer a folyamat tulajdonosának megkeresésére.

A második parancs a PowerShell-folyamat lekérésére használja Get-WmiObject . A változóba $p menti.

A harmadik parancs a GetOwner metódust használja a folyamat $ptulajdonosának lekéréséhez. A kimenetből kiderül, hogy a tulajdonos .Domain01\user01

9. példa: Automatikus változó használata az aktuális munkamenetet futtató folyamat azonosításához

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

Ezek a parancsok bemutatják, hogyan használható az $PID automatikus változó az aktuális PowerShell-munkamenetet futtató folyamat azonosítására. Ezzel a módszerrel megkülönböztetheti a gazdagépfolyamatot a leállítani vagy bezárni kívánt egyéb PowerShell-folyamatoktól.

Az első parancs lekéri az összes PowerShell-folyamatot az aktuális munkamenetben.

A második parancs lekéri az aktuális munkamenetet üzemeltető PowerShell-folyamatot.

10. példa: Az összes főablakcímmel rendelkező folyamat lekérése és megjelenítése egy táblázatban

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

Ez a parancs lekéri az összes főablakcímmel rendelkező folyamatot, és megjeleníti őket egy táblában a folyamatazonosítóval és a folyamat nevével.

A mainWindowTitle tulajdonság csak egyike a visszaadott Folyamat objektum Get-Process számos hasznos tulajdonságának. Az összes tulajdonság megtekintéséhez a parancs eredményeit Get-Process a parancsmagba kell csöveznie Get-Member Get-Process | Get-Member.

Paraméterek

-ComputerName

Meghatározza azokat a számítógépeket, amelyeken ez a parancsmag aktív folyamatokat kap. Alapértelmezés szerint a helyi számítógép.

Írja be egy vagy több számítógép NetBIOS-nevét, IP-címét vagy teljes tartománynevét (FQDN). A helyi számítógép megadásához írja be a számítógép nevét, egy pont (.) vagy localhost.

Ez a paraméter nem támaszkodik a Windows PowerShell-újraegyezésre. A parancsmag ComputerName paraméterét akkor is használhatja, ha a számítógép nincs távoli parancsok futtatására konfigurálva.

Típus:String[]
Aliasok:Cn
Position:Named
Alapértelmezett érték:Local computer
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-FileVersionInfo

Azt jelzi, hogy ez a parancsmag lekéri a folyamatban futó program fájlverziójának adatait.

A Windows Vista és a Windows újabb verzióiban a PowerShellt a Futtatás rendszergazdaként lehetőséggel kell megnyitnia, hogy ezt a paramétert olyan folyamatokon használja, amelyek nem a saját tulajdona.

Ugyanabban a parancsmagban nem használhatja a Get-Process parancsmag FileVersionInfo és ComputerName paraméterét.

Ha egy távoli számítógépen lévő folyamat fájlverzióadatait szeretné lekérni, használja a Invoke-Command parancsmagot.

A paraméter használata egyenértékű az egyes folyamatobjektumok MainModule.FileVersionInfo tulajdonságának lekérésével. Ha ezt a paramétert használja, Get-Process a System.Diagnostics.FileVersionInfo fileVersionInfo objektumot adja vissza, nem pedig folyamatobjektumot. Így a parancs kimenetét nem lehet olyan parancsmagra csövezni, amely egy folyamatobjektumot vár, például Stop-Process.

Típus:SwitchParameter
Aliasok:FV, FVI
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Id

Egy vagy több folyamatot határoz meg folyamatazonosító (PID) alapján. Több azonosító megadásához használjon vesszőket az azonosítók elválasztásához. A folyamat PID-jének megkereséséhez írja be a következőt Get-Process:

Típus:Int32[]
Aliasok:PID
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-IncludeUserName

Azt jelzi, hogy a Folyamat objektum UserName értéke a parancs eredményeivel lesz visszaadva.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-InputObject

Egy vagy több folyamatobjektumot határoz meg. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat.

Típus:Process[]
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Module

Azt jelzi, hogy ez a parancsmag lekéri a folyamatok által betöltött modulokat.

A Windows Vista és a Windows újabb verzióiban a PowerShellt a Futtatás rendszergazdaként lehetőséggel kell megnyitnia, hogy ezt a paramétert olyan folyamatokon használja, amelyek nem a saját tulajdona.

A távoli számítógépen egy folyamat által betöltött modulok lekéréséhez használja a Invoke-Command parancsmagot.

Ez a paraméter egyenértékű az egyes folyamatobjektumok Modulok tulajdonságának lekérésével. A paraméter használatakor ez a parancsmag egy System.Diagnostics.ProcessModule ProcessModule objektumot ad vissza, nem folyamatobjektumot. Így a parancs kimenetét nem lehet olyan parancsmagra csövezni, amely egy folyamatobjektumot vár, például Stop-Process.

Ha ugyanabban a parancsban a Modul és a FileVersionInfo paramétert is használja, ez a parancsmag egy FileVersionInfo objektumot ad vissza, amely az összes modul fájlverziójával kapcsolatos információkat tartalmazza.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Name

Egy vagy több folyamatot határoz meg folyamatnév alapján. Több folyamatnevet is beírhat (vesszővel elválasztva), és helyettesítő karaktereket is használhat. A paraméter neve (Name) megadása nem kötelező.

Típus:String[]
Aliasok:ProcessName
Position:0
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:True

Bevitelek

Process

A parancsmaghoz folyamatobjektumot is csövezhet.

Kimenetek

Process

Ez a parancsmag alapértelmezés szerint egy System.Diagnostics.Process objektumot ad vissza.

FileVersionInfo

Ha a FileVersionInfo paramétert használja, ez a parancsmag egy FileVersionInfo objektumot ad vissza.

ProcessModule

Ha a Modul paramétert használja a FileVersionInfo paraméter nélkül, ez a parancsmag egy ProcessModule objektumot ad vissza.

Jegyzetek

A Windows PowerShell a következő aliasokat Get-Processtartalmazza:

  • gps
  • ps

A Windows 64 bites verzióját futtató számítógépeken a PowerShell 64 bites verziója csak 64 bites folyamatmodulokat kap, a PowerShell 32 bites verziója pedig csak 32 bites folyamatmodulokat kap.

Ha távoli számítógépről szeretne folyamatadatokat lekérni, használja a Invoke-Command parancsmagot. További információ: Invoke-Command.

A Windows Management Instrumentation (WMI) Win32_Process objektum tulajdonságait és módszereit a PowerShellben használhatja. További információ: Win32_Process.

A folyamat alapértelmezett megjelenítése egy táblázat, amely a következő oszlopokat tartalmazza. A folyamatobjektumok összes tulajdonságának leírását a Folyamat tulajdonságai című témakörben talál.

  • Leírók: A folyamat által megnyitott leírók száma.
  • NPM(K): A folyamat által használt nem lapozott memória mennyisége kilobájtban.
  • PM(K): A folyamat által használt lapozható memória mennyisége kilobájtban.
  • WS(K): A folyamat munkakészletének mérete kilobájtban. A munkakészlet a folyamat által nemrég hivatkozott memórialapokból áll.
  • Virtuális gép(M): A folyamat által használt virtuális memória mennyisége megabájtban. A virtuális memória magában foglalja a lemez lapozófájljainak tárhelyét.
  • CPU(k): A folyamat által az összes processzoron felhasznált processzoridő másodpercben.
  • Azonosító: A folyamat folyamatazonosítója (PID).
  • ProcessName: A folyamat neve. A folyamatokkal kapcsolatos fogalmak magyarázatát a Súgó és támogatási központ szószedetében és a Feladatkezelő súgójában találhatja meg.

Használhatja az elérhető Format-Tablefolyamatok beépített alternatív nézeteit is( például StartTime és Priority), és saját nézeteket is tervezhet.