Get-Process
Pobiera procesy uruchomione na komputerze lokalnym.
Składnia
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>]
Opis
Polecenie cmdlet Get-Process
pobiera procesy na komputerze lokalnym.
Bez parametrów to polecenie cmdlet pobiera wszystkie procesy na komputerze lokalnym. Można również określić określony proces według nazwy procesu lub identyfikatora procesu (PID) lub przekazać obiekt procesu przez potok do tego polecenia cmdlet.
Domyślnie to polecenie cmdlet zwraca obiekt procesu zawierający szczegółowe informacje o procesie i obsługuje metody, które umożliwiają rozpoczęcie i zatrzymanie procesu. Możesz również użyć parametrów polecenia cmdlet Get-Process
, aby uzyskać informacje o wersji pliku dla programu uruchamianego w procesie i pobrać moduły załadowane przez proces.
Przykłady
Przykład 1. Pobieranie listy wszystkich aktywnych procesów na komputerze lokalnym
Get-Process
To polecenie pobiera listę wszystkich aktywnych procesów uruchomionych na komputerze lokalnym. Aby uzyskać definicję każdej kolumny, zobacz sekcję Uwagi.
Przykład 2. Pobieranie wszystkich dostępnych danych dotyczących co najmniej jednego procesu
Get-Process winword, explorer | Format-List *
To polecenie pobiera wszystkie dostępne dane dotyczące procesów Winword i Explorer na komputerze. Używa parametru Name w celu określenia procesów, ale pomija opcjonalną nazwę parametru. Operator potoku (|
) przekazuje dane do polecenia cmdlet Format-List
, które wyświetla wszystkie dostępne właściwości (*
) obiektów procesu Winword i Eksploratora.
Można również zidentyfikować procesy według ich identyfikatorów procesów. Na przykład Get-Process -Id 664, 2060
.
Przykład 3. Pobieranie wszystkich procesów z zestawem roboczym większym niż określony rozmiar
Get-Process | Where-Object {$_.WorkingSet -gt 20000000}
To polecenie pobiera wszystkie procesy, które mają zestaw roboczy większy niż 20 MB. Używa on polecenia cmdlet Get-Process
, aby pobrać wszystkie uruchomione procesy. Operator potoku (|
) przekazuje obiekty procesu do polecenia cmdlet Where-Object
, które wybiera tylko obiekt o wartości większej niż 20 000 000 bajtów dla właściwości WorkingSet.
WorkingSet jest jedną z wielu właściwości obiektów procesu. Aby wyświetlić wszystkie właściwości, wpisz Get-Process | Get-Member
. Domyślnie wartości wszystkich właściwości ilości znajdują się w bajtach, mimo że domyślne wyświetlanie wyświetla je w kilobajtach i megabajtach.
Przykład 4: Wyświetlanie listy procesów na komputerze w grupach na podstawie priorytetu
$A = Get-Process
$A | Get-Process | Format-Table -View priority
Te polecenia zawierają listę procesów na komputerze w grupach na podstawie ich klasy priorytetu. Pierwsze polecenie pobiera wszystkie procesy na komputerze, a następnie przechowuje je w zmiennej $A
.
Drugie polecenie potokuje obiekt procesu przechowywany w zmiennej $A
do polecenia cmdlet Get-Process
, a następnie do polecenia cmdlet Format-Table
, które formatuje procesy przy użyciu widoku priorytetu.
Widok priorytetu i inne widoki są definiowane w plikach formatu PS1XML w katalogu głównym programu PowerShell ($pshome
).
Przykład 5. Dodawanie właściwości do standardowego Get-Process wyświetlania danych wyjściowych
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, ProcessName, StartTime -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName StartTime
------ ----- ----- ----- ------ -- ----------- ---------
143 239540 259384 2366162 22.73 12720 pwsh 12/5/2022 3:21:51 PM
114 61776 104588 2366127 11.45 18336 pwsh 12/5/2022 7:30:53 AM
156 77924 82060 2366185 10.47 18812 pwsh 12/5/2022 7:30:52 AM
85 48216 115192 2366074 1.14 24428 pwsh 12/8/2022 9:14:15 AM
Ten przykład pobiera procesy z komputera lokalnego. Pobrane procesy są przesyłane potokami do polecenia Format-Table
, które dodaje właściwość StartTime do standardowego Get-Process
wyświetlania danych wyjściowych.
Przykład 6. Pobieranie informacji o wersji dla procesu
Get-Process pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.2 6.1.2 C:\Program Files\PowerShell\6\pwsh.exe
To polecenie używa parametru FileVersionInfo, aby uzyskać informacje o wersji pliku pwsh.exe
, który jest głównym modułem procesu programu PowerShell.
Aby uruchomić to polecenie z procesami, które nie są własnością systemu Windows Vista i nowszych wersji systemu Windows, musisz otworzyć program PowerShell z opcją Uruchom jako administrator.
Przykład 7. Pobieranie modułów załadowanych przy użyciu określonego procesu
Get-Process SQL* -Module
To polecenie używa parametru modułu w celu pobrania modułów załadowanych przez proces.
To polecenie pobiera moduły dla procesów, które mają nazwy rozpoczynające się od SQL
.
Aby uruchomić to polecenie w systemie Windows Vista i nowszych wersjach systemu Windows z procesami, których nie jesteś właścicielem, musisz uruchomić program PowerShell z opcją Uruchom jako administrator.
Przykład 8. Znajdowanie właściciela procesu
Get-Process pwsh -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 pwsh
To polecenie pokazuje, jak znaleźć właściciela procesu.
W systemie Windows parametr IncludeUserName wymaga podwyższonego poziomu uprawnień użytkownika (Uruchom jako administrator), aby wyświetlić użytkowników procesów, które nie są uruchomione jako bieżący użytkownik.
Dane wyjściowe pokazują, że właściciel jest Domain01\user01
.
Przykład 9. Używanie zmiennej automatycznej do identyfikowania procesu obsługującego bieżącą sesję
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
Te polecenia pokazują, jak używać $PID
zmiennej automatycznej do identyfikowania procesu, który hostuje bieżącą sesję programu PowerShell. Za pomocą tej metody można odróżnić proces hosta od innych procesów programu PowerShell, które można zatrzymać lub zamknąć.
Pierwsze polecenie pobiera wszystkie procesy programu PowerShell w bieżącej sesji.
Drugie polecenie pobiera proces programu PowerShell hostujący bieżącą sesję.
Przykład 10: Pobieranie wszystkich procesów, które mają tytuł okna głównego i wyświetlanie ich w tabeli
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowTitle -AutoSize
To polecenie pobiera wszystkie procesy, które mają tytuł okna głównego, i wyświetla je w tabeli z identyfikatorem procesu i nazwą procesu.
Właściwość mainWindowTitle jest tylko jedną z wielu przydatnych właściwości obiektu Process, który Get-Process
zwraca. Aby wyświetlić wszystkie właściwości, należy przekazać wyniki polecenia Get-Process
do polecenia cmdlet Get-Member
Get-Process | Get-Member
.
Parametry
-FileVersionInfo
Wskazuje, że to polecenie cmdlet pobiera informacje o wersji pliku dla programu, który jest uruchamiany w procesie.
W systemie Windows należy otworzyć program PowerShell z opcją Uruchom jako administrator, aby użyć tego parametru w procesach, których nie jesteś właścicielem.
Użycie tego parametru jest równoważne pobieraniu właściwości MainModule.FileVersionInfo każdego obiektu procesu. Jeśli używasz tego parametru, Get-Process
zwraca obiekt FileVersionInfoSystem.Diagnostics.FileVersionInfo, a nie obiekt procesu. W związku z tym nie można przekazać danych wyjściowych polecenia cmdlet, które oczekuje obiektu procesu, takiego jak Stop-Process
.
Typ: | SwitchParameter |
Aliasy: | FV, FVI |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Id
Określa co najmniej jeden proces według identyfikatora procesu (PID). Aby określić wiele identyfikatorów, użyj przecinków, aby oddzielić identyfikatory. Aby znaleźć identyfikator PID procesu, wpisz Get-Process
.
Typ: | Int32[] |
Aliasy: | PID |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-IncludeUserName
Wskazuje, że wartość UserName obiektu Process jest zwracana z wynikami polecenia.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InputObject
Określa co najmniej jeden obiekt procesu. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.
Typ: | Process[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Module
Wskazuje, że to polecenie cmdlet pobiera moduły, które zostały załadowane przez procesy.
W systemie Windows Vista i nowszych wersjach systemu Windows należy otworzyć program PowerShell z opcją Uruchom jako administrator, aby użyć tego parametru w procesach, których nie jesteś właścicielem.
Ten parametr jest odpowiednikiem pobierania właściwości Modules każdego obiektu procesu. Jeśli używasz tego parametru, to polecenie cmdlet zwraca obiekt System.Diagnostics.ProcessModule , a nie obiekt procesu. W związku z tym nie można przekazać danych wyjściowych polecenia cmdlet, które oczekuje obiektu procesu, takiego jak Stop-Process
.
Jeśli używasz parametrów modułu i FileVersionInfo w tym samym poleceniu, to polecenie cmdlet zwraca obiekt FileVersionInfo z informacjami o wersji pliku wszystkich modułów.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Name
Określa co najmniej jeden proces według nazwy procesu. Można wpisać wiele nazw procesów (rozdzielonych przecinkami) i użyć symboli wieloznacznych. Nazwa parametru (Name
) jest opcjonalna.
Typ: | String[] |
Aliasy: | ProcessName |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | True |
Dane wejściowe
Do tego polecenia cmdlet można przekazać obiekt procesu.
Dane wyjściowe
Domyślnie to polecenie cmdlet zwraca obiekt System.Diagnostics.Process.
Jeśli używasz parametru FileVersionInfo, to polecenie cmdlet zwraca obiekt FileVersionInfo.
Jeśli używasz parametru Module bez parametru FileVersionInfo, to polecenie cmdlet zwraca obiekt ProcessModule.
Uwagi
Program PowerShell zawiera następujące aliasy dla Get-Process
:
- Wszystkie platformy:
gps
- Windows:
ps
Na komputerach z 64-bitową wersją systemu Windows 64-bitowa wersja programu PowerShell pobiera tylko 64-bitowe moduły przetwarzania, a 32-bitowa wersja programu PowerShell pobiera tylko 32-bitowe moduły procesów.
Aby uzyskać informacje o procesie z komputera zdalnego, użyj polecenia cmdlet Invoke-Command
. Aby uzyskać więcej informacji, zobacz Invoke-Command.
Możesz użyć właściwości i metod obiektu instrumentacji zarządzania Windows (WMI) Win32_Process w programie PowerShell. Aby uzyskać informacje, zobacz Win32_Process.
Domyślnym wyświetlaniem procesu jest tabela zawierająca następujące kolumny. Aby uzyskać opis wszystkich właściwości obiektów procesu, zobacz Właściwości procesu.
- Obsługuje: liczba otwartych dojść.
- NPM(K): ilość niestronicowanej pamięci używanej przez proces w kilobajtach.
- PM(K): ilość pamięci stronicowalnej używanej przez proces w kilobajtach.
- WS(K): rozmiar zestawu roboczego procesu w kilobajtach. Zestaw roboczy składa się ze stron pamięci, do których ostatnio odwołuje się proces.
- vm(M): ilość pamięci wirtualnej używanej przez proces w megabajtach. Pamięć wirtualna zawiera magazyn w plikach stronicowania na dysku.
- procesora cpu: czas procesora używany przez proces na wszystkich procesorach w sekundach.
- identyfikator: identyfikator procesu (PID) procesu.
- ProcessName: nazwa procesu. Aby uzyskać wyjaśnienia pojęć związanych z procesami, zobacz Słownik w Centrum pomocy i pomocy technicznej oraz Pomoc dla Menedżera zadań.
Możesz również użyć wbudowanych widoków alternatywnych procesów dostępnych w Format-Table
, takich jak StartTime i Priority, i można zaprojektować własne widoki.