Get-Process
Pobiera procesy uruchomione na komputerze lokalnym.
Składnia
Name (Domyślna)
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
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 przez potokowanie obiektu System.Diagnostics.Process do tego polecenia cmdlet.
Domyślnie to polecenie cmdlet zwraca obiekt Process , który zawiera szczegółowe informacje o procesie i obsługuje metody, które umożliwiają sterowanie nim. Za pomocą parametrów można zmienić typ informacji zwracanych przez to polecenie cmdlet.
- Moduł: pobieranie informacji dla każdego modułu załadowanego do procesu.
- FileVersionInfo: pobieranie informacji o wersji pliku dla głównego modułu procesu.
Uwaga / Notatka
Moduł to plik wykonywalny lub biblioteka łączy dynamicznych (DLL) załadowana do procesu. Proces zawiera co najmniej jeden moduł. Moduł główny jest modułem używanym do początkowego uruchamiania procesu. Aby uzyskać więcej informacji, zobacz ProcessModule Class (Klasa ProcessModule).
Przykłady
Przykład 1. Pobieranie listy wszystkich uruchomionych procesów na komputerze lokalnym
Get-Process
To polecenie pobiera listę wszystkich uruchomionych procesów na komputerze lokalnym. Aby uzyskać definicję każdej kolumny wyświetlania, zobacz sekcję UWAGI .
Aby wyświetlić wszystkie właściwości obiektu Process , użyj polecenia Get-Process | Get-Member. Domyślnie program PowerShell wyświetla niektóre wartości właściwości przy użyciu jednostek, takich jak kilobajty (K) i megabajty (M). Rzeczywiste wartości, do których uzyskuje się dostęp za pomocą operatora dostępu do elementu członkowskiego (.), są w bajtach.
Przykład 2. Wyświetlanie szczegółowych informacji o co najmniej jednym procesie
Get-Process winword, explorer | Format-List *
Ten potok wyświetla szczegółowe informacje o winword procesach i explorer na komputerze. Używa parametru Name w celu określenia procesów, ale pomija opcjonalną nazwę parametru. Operator potoku (|) potokuje obiekty przetwarzania do Format-List polecenia cmdlet, które wyświetla wszystkie dostępne właściwości (*) i ich wartości dla każdego obiektu.
Można również zidentyfikować procesy według ich identyfikatorów procesów. 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 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
Polecenie Get-Process cmdlet zwraca uruchomione procesy. Dane wyjściowe są przesyłane potokiem do Where-Object polecenia cmdlet, które wybiera obiekty z wartością WorkingSet większą niż 20 971 520 bajtów.
W pierwszym przykładzie Where-Object użyto skryptblocku do porównania właściwości WorkingSet każdego obiektu Process . W drugim przykładzie Where-Object polecenie cmdlet używa uproszczonej składni do porównania właściwości WorkingSet . W tym przypadku -GT jest parametrem, a nie operatorem porównania. W drugim przykładzie użyto również sufiksu literału liczbowego jako zwięzłej alternatywy dla 20971520metody . W programie PowerShell MB reprezentuje mnożnik mebibajt (MiB).
20MB jest równa 20 971 520 bajtów.
Przykład 4. Wyświetlanie procesów na komputerze w grupach na podstawie priorytetu
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
Te polecenia wyświetlają procesy na komputerze w grupach na podstawie ich klasy priorytetu. Pierwsze polecenie pobiera wszystkie procesy na komputerze i przechowuje je w zmiennej $processes .
Drugie polecenie potokuje obiekty Procesu przechowywane w zmiennej $processes do Sort-Object polecenia cmdlet, a następnie do Format-Table polecenia cmdlet, które formatuje procesy przy użyciu widoku Priorytet .
Przykład 5. Dodawanie właściwości do domyślnego wyświetlania danych wyjściowych "Get-Process"
Get-Process -Name pwsh | Format-Table -Property @(
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(M)'; Expression = { [int] ($_.PM / 1MB) } }
@{ Name = 'WS(M)'; Expression = { [int] ($_.WS / 1MB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName StartTime
------ ----- ----- ------ -- -- ----------- ---------
84 46 79 18.297 3188 1 pwsh 4/14/2025 10:40:10 AM
66 30 90 4.328 4640 1 pwsh 4/13/2025 3:33:50 PM
66 30 90 4.516 9204 1 pwsh 4/14/2025 9:54:27 AM
W tym przykładzie są pobierane procesy z komputera lokalnego i potokuje każdy obiekt Procesu do Format-Table polecenia cmdlet.
Format-Table Odtwarza domyślne wyświetlanie danych wyjściowych obiektu Procesu przy użyciu kombinacji nazw właściwości i właściwości obliczeniowych. Ekran zawiera dodatkową właściwość StartTime , która nie jest obecna na ekranie domyślnym.
Przykład 6. Pobieranie informacji o wersji dla procesu
Get-Process -Name pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
7.5.0 SHA: 99da… 7.5.0.500 C:\Program Files\PowerShell\7\pwsh.exe
To polecenie używa parametru FileVersionInfo , aby uzyskać informacje o wersji pliku dla głównego modułu pwsh procesu. Głównym modułem jest plik używany do uruchomienia procesu, który w tym przypadku to pwsh.exe.
Aby użyć tego polecenia z procesami, które nie są własnością systemu Windows Vista i nowszych wersji systemu Windows, należy uruchomić program PowerShell z podwyższonym poziomem uprawnień użytkownika (Uruchom jako administrator).
Przykład 7. Pobieranie modułów załadowanych przy użyciu określonego procesu
Get-Process -Name SQL* -Module
To polecenie używa parametru Moduł , aby pobrać moduły załadowane przez wszystkie procesy o nazwie rozpoczynającej się od SQL.
Aby użyć tego polecenia z procesami, które nie są własnością systemu Windows Vista i nowszych wersji systemu Windows, należy uruchomić program PowerShell z podwyższonym poziomem uprawnień użytkownika (Uruchom jako administrator).
Przykład 8. Znajdowanie właściciela procesu
Get-Process -Name pwsh -IncludeUserName
WS(M) CPU(s) Id UserName ProcessName
----- ------ -- -------- -----------
46.53 21.70 3188 DOMAIN01\user01 pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
Pierwsze polecenie pokazuje, jak uzyskać właściciela procesu. Dane wyjściowe pokazują, że właściciel jest DOMAIN01\user01.
Drugi potok pokazuje inny sposób uzyskiwania właściciela procesu przy użyciu elementów Get-CimInstance i Invoke-CimMethod. Klasa Win32_Process z filtrem pobiera pwsh procesy, a wywołana GetOwner() metoda zwraca informacje dotyczące domeny i użytkownika procesu. Ta metoda jest dostępna tylko w systemie Windows i nie wymaga podwyższonych uprawnień użytkownika.
Przykład 9. Używanie zmiennej automatycznej do identyfikowania procesu obsługującego bieżącą sesję
Get-Process -Name 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 pwsh procesów, które warto kontrolować.
Pierwsze polecenie pobiera wszystkie pwsh uruchomione procesy. Drugie polecenie pobiera pwsh proces 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 -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
Ten potok pobiera wszystkie procesy, które mają tytuł okna głównego i wyświetla je w tabeli z identyfikatorem procesu i nazwą.
MainWindowTitle jest jedną z wielu przydatnych właściwości zwracanego typu Get-Process obiektu Diagnostics.Process. Aby wyświetlić wszystkie właściwości, użyj polecenia 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 Vista i nowszych wersjach systemu Windows należy uruchomić program PowerShell z podwyższonym poziomem uprawnień użytkownika (Uruchom jako administrator), aby użyć tego parametru w procesach, których nie jesteś właścicielem.
Użycie tego parametru jest takie samo jak uzyskiwanie dostępu do właściwości MainModule.FileVersionInfo każdego obiektu Process . Jeśli używasz tego parametru, Get-Process zwraca obiekt FileVersionInfo , a nie obiekt Process . Nie można potokować danych wyjściowych generowanych przy użyciu tego parametru do polecenia cmdlet, które oczekuje obiektu Process , takiego jak Stop-Process.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | FV, FVI |
Zestawy parametrów
Name
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
Id
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
InputObject
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Id
Określa co najmniej jeden proces według identyfikatora procesu (PID). Można określić wiele identyfikatorów rozdzielonych przecinkami. Aby uzyskać identyfikator PID procesu, użyj polecenia Get-Process. Aby uzyskać identyfikator PID bieżącej sesji programu PowerShell, użyj polecenia $PID.
Właściwości parametru
| Typ: | Int32[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | identyfikator PID |
Zestawy parametrów
Id
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
IdWithUserName
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-IncludeUserName
Wskazuje, że to polecenie dodaje właściwość UserName do każdego zwróconego obiektu Procesu .
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
NameWithUserName
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
IdWithUserName
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
InputObjectWithUserName
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-InputObject
Określa co najmniej jeden obiekt procesu . Użyj zmiennej zawierającej obiekty lub polecenia lub wyrażenia, które pobiera obiekty.
Właściwości parametru
| Typ: | Process[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
InputObject
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
InputObjectWithUserName
| Position: | Named |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Module
Wskazuje, że to polecenie cmdlet pobiera moduły załadowane przez proces.
W systemie Windows Vista i nowszych wersjach systemu Windows należy uruchomić program PowerShell z podwyższonym poziomem uprawnień użytkownika (Uruchom jako administrator), aby użyć tego parametru w procesach, których nie jesteś właścicielem.
Użycie tego parametru jest takie samo jak uzyskiwanie dostępu do właściwości Modules każdego obiektu Process .
Jeśli używasz tego parametru, Get-Process zwraca obiekt ProcessModule , a nie obiekt Process . Nie można potokować danych wyjściowych generowanych przy użyciu tego parametru do polecenia cmdlet, które oczekuje obiektu Process , takiego jak Stop-Process.
Jeśli używasz jednocześnie parametrów Module i FileVersionInfo , to polecenie cmdlet zwraca obiekt FileVersionInfo z informacjami o wersji pliku wszystkich modułów.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
Name
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
Id
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
InputObject
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Name
Określa co najmniej jeden proces według nazwy procesu. Można określić wiele nazw procesów rozdzielonych przecinkami i używać symboli wieloznacznych. Użycie parametru -Name jest opcjonalne.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | True |
| DontShow: | False |
| Aliasy: | Nazwa procesu |
Zestawy parametrów
Name
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
NameWithUserName
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
Process
Do tego polecenia cmdlet można przekazać potokowe obiekty procesu .
Dane wyjściowe
Process
Domyślnie to polecenie cmdlet zwraca obiekt System.Diagnostics.Process.
FileVersionInfo
Jeśli używasz parametru FileVersionInfo , to polecenie cmdlet zwraca obiekt System.Diagnostics.FileVersionInfo .
ProcessModule
Jeśli używasz parametru Module bez parametru FileVersionInfo , to polecenie cmdlet zwraca obiekt System.Diagnostics.ProcessModule .
Uwagi
Program PowerShell zawiera następujące aliasy dla Get-Process:
- Wszystkie platformy:
gps
- Windows:
ps
Na komputerach z 64-bitowym systemem Windows 64-bitowa wersja programu PowerShell pobiera moduł główny i 64-bitowe moduły przetwarzania. 32-bitowa wersja programu PowerShell pobiera tylko 32-bitowe moduły przetwarzania.
Ostrzeżenie
Jeśli używasz Get-Process metody do pobrania 64-bitowego procesu w 32-bitowej wersji programu PowerShell, właściwości takie jak Path i MainModule zwrócony obiekt Procesu to $null. Należy użyć 64-bitowej wersji programu PowerShell lub klasy Win32_Process .
Aby uzyskać informacje o procesie z komputera zdalnego, użyj polecenia cmdlet Invoke-Command. Aby uzyskać więcej informacji, zobacz Invoke-Command.
W systemie Windows możesz użyć klasy instrumentacji zarządzania Windows (WMI) Win32_Process w programie PowerShell jako alternatywy dla Get-Process. Aby uzyskać więcej informacji, zobacz:
Domyślnym wyświetlaniem obiektu Procesu jest widok tabeli zawierający następujące kolumny.
- NPM(K): ilość niestronicowanej pamięci używanej przez proces w kilobajtach.
- PM(M): ilość pamięci stronicowalnej używanej przez proces w megabajtach.
- WS(M): rozmiar zestawu roboczego procesu w megabajtach. Zestaw roboczy składa się ze stron pamięci, do których ostatnio odwołuje się proces.
- procesora cpu: czas procesora używany przez proces na wszystkich procesorach w sekundach.
- Identyfikator: identyfikator procesu (PID) procesu.
- SI: identyfikator sesji procesu.
- ProcessName: nazwa procesu.
Można użyć wbudowanych widoków alternatywnych dla obiektów procesów dostępnych w Format-Tableprogramie , takich jak StartTime i Priority. Możesz również zaprojektować własne widoki.
Opis wszystkich dostępnych elementów członkowskich obiektu procesu można znaleźć w temacie Właściwości procesu i metody procesu.