Get-Process

Pobiera listę uruchomionych procesów na komputerze.

Get-Process to cmdlet PowerShella, który pobiera listę procesów uruchomionych na komputerze. To windowsowy odpowiednik tego, co na Linuksie robi ps albo top — z tą różnicą, że zwraca prawdziwe obiekty .NET (typu System.Diagnostics.Process), a nie zwykły tekst. Dzięki temu możesz wynik filtrować, sortować i przekazywać dalej w potoku bez parsowania kolumn. Przyda się, gdy szukasz zżerającego pamięć procesu, sprawdzasz czy aplikacja w ogóle wstała, albo zbierasz PID-y do ubicia.

Składnia i najważniejsze opcje

Podstawowa forma: Get-Process [[-Name] ] [-Id ]. Bez żadnych argumentów wypisze wszystkie procesy.

  • -Name — filtruje po nazwie procesu (bez rozszerzenia .exe). Obsługuje znaki wieloznaczne, np. chrome*.
  • -Id — pobiera proces po jego identyfikatorze PID. Możesz podać kilka, po przecinku.
  • -IncludeUserName — dodaje kolumnę z kontem właściciela procesu. Wymaga uruchomienia PowerShella jako administrator.
  • -Module — zwraca moduły (biblioteki DLL) załadowane do procesu zamiast samych procesów.
  • -FileVersionInfo — pokazuje informacje o wersji pliku głównego modułu procesu (przydatne przy debugowaniu wersji).
  • -InputObject — przyjmuje obiekty procesów z potoku zamiast nazw czy PID-ów.

Przykłady użycia

  • Get-Process — wyświetla wszystkie procesy z kolumnami CPU, pamięci i PID.
  • Get-Process -Name chrome — pokazuje wszystkie instancje Chrome’a (a jest ich zwykle nieprzyzwoicie dużo).
  • Get-Process -Id 4321 — wyciąga jeden konkretny proces po PID.
  • Get-Process | Sort-Object WS -Descending | Select-Object -First 5 — pokazuje 5 procesów zżerających najwięcej pamięci roboczej (Working Set).
  • Get-Process notepad | Stop-Process — znajduje Notatnik i przekazuje go do Stop-Process, żeby go ubić.

Częste błędy i pułapki

Jeśli podasz nazwę procesu, którego nie ma, dostaniesz czerwony błąd Cannot find a process with the name — to normalne, nie awaria. Pamiętaj, że -Name bierze nazwę bez .exe: piszesz firefox, nie firefox.exe. Kolumna CPU bywa pusta lub myląca — to suma czasu procesora w sekundach, a nie bieżące zużycie w procentach, więc nie czytaj jej jak w Menedżerze zadań. Parametr -ComputerName do zdalnego odpytywania istniał w Windows PowerShell 5.1, ale w PowerShell 7 został usunięty — do zdalnego dostępu użyj Invoke-Command lub PowerShell Remoting. I uwaga: alias ps w PowerShellu wskazuje właśnie na Get-Process, a nie na linuksowy ps — łatwo o pomyłkę nawyku.

Powiązane komendy: Stop-Process, Start-Process, Wait-Process, Get-Service, Where-Object, Sort-Object.