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] . 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 doStop-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.