Get-Process to polecenie PowerShell zwracające listę uruchomionych procesów wraz z ich zużyciem zasobów.
Get-Process jako źródło informacji o uruchomionych procesach
Get-Process jest poleceniem PowerShell służącym do odczytywania informacji o procesach działających w systemie Windows. Po wykonaniu bez dodatkowych parametrów zwraca obiekty reprezentujące procesy aktualnie uruchomione w bieżącej sesji systemu. Wynik jest prezentowany tabelarycznie, zwykle z kolumnami Handles, NPM(K), PM(K), SI, CPU(s) oraz Id. Ostatnia kolumna zawiera identyfikator procesu, czyli PID (Process Identifier), a kolumna ProcessName wskazuje nazwę procesu bez rozszerzenia pliku wykonywalnego.
Proces jest instancją uruchomionego programu. Jeden program może mieć kilka procesów, a nazwa procesu nie zawsze jednoznacznie wskazuje jego przeznaczenie. Przykładowo aplikacja może uruchamiać proces główny, proces pomocniczy oraz oddzielne procesy odpowiedzialne za aktualizacje lub renderowanie. Get-Process pokazuje stan odczytany w chwili wykonania polecenia, dlatego lista może zmienić się natychmiast po zamknięciu programu, uruchomieniu nowej aplikacji albo automatycznym zakończeniu procesu systemowego.
Wyszukiwanie konkretnego procesu i odczyt jego właściwości
Do wyszukania procesu po nazwie można użyć polecenia Get-Process -Name notepad. Parametr -Name przyjmuje nazwę procesu, zazwyczaj bez końcówki .exe. Jeżeli działa kilka jego instancji, polecenie może zwrócić kilka obiektów. Alternatywnie można użyć identyfikatora, na przykład Get-Process -Id 4321, o ile numer PID jest znany i proces nadal istnieje. Próba odczytu procesu, który zakończył działanie, może zakończyć się błędem, ponieważ PID opisuje bieżącą instancję, a nie stały identyfikator programu.
Obiekt zwrócony przez Get-Process udostępnia więcej właściwości niż te pokazane w domyślnej tabeli. Polecenie Get-Process | Select-Object ProcessName, Id, CPU, WorkingSet64, Path pozwala wybrać nazwę, PID, czas procesora, rozmiar pamięci roboczej oraz ścieżkę pliku wykonywalnego. WorkingSet64 jest wartością liczbową wyrażoną w bajtach i opisuje pamięć roboczą przypisaną procesowi w chwili odczytu. Właściwość CPU przedstawia skumulowany czas procesora wykorzystany przez proces od jego uruchomienia, a nie bieżące procentowe obciążenie procesora.
Filtrowanie, sortowanie i interpretacja obciążenia
Wynik można filtrować za pomocą Where-Object. Przykład Get-Process | Where-Object { $_.WorkingSet64 -gt 500MB } wybiera procesy, których pamięć robocza przekracza 500 megabajtów. W PowerShell zapis 500MB jest stałą liczbową, a właściwość WorkingSet64 jest porównywana w bajtach. Do sortowania można zastosować Sort-Object, na przykład Get-Process | Sort-Object CPU -Descending. Takie polecenie umieszcza wyżej procesy o większym skumulowanym czasie procesora.
Sama duża wartość pamięci lub czasu CPU nie potwierdza jeszcze awarii. Program wykonujący wymagające obliczenia może prawidłowo korzystać z wielu zasobów, natomiast proces zużywający zasoby przez długi czas bez widocznej aktywności może wymagać dalszej diagnostyki. Przydatne jest wykonanie kilku odczytów w odstępach czasu i porównanie wyników. Właściwość Responding może wskazywać, czy aplikacja interfejsowa odpowiada na żądania systemu, ale jej wartość nie zastępuje analizy logów, stanu dysku, pamięci RAM ani zachowania całego systemu. Warto również pamiętać, że niektóre właściwości mogą wymagać uprawnień administratora, szczególnie gdy dotyczą procesów uruchomionych przez inne konto.
Wykorzystanie Get-Process podczas diagnozy systemu Windows
Get-Process może pomóc ustalić, czy spowolnienie komputera jest związane z konkretnym uruchomionym programem, nadmiernym zużyciem pamięci albo wzrostem obciążenia procesora. Do szybkiego zestawienia procesów według pamięci można użyć polecenia Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 ProcessName, Id, WorkingSet64. W przypadku zawieszonej aplikacji można sprawdzić jej PID, nazwę i podstawowe właściwości przed podjęciem decyzji o zakończeniu procesu. Polecenie Stop-Process -Id 4321 służy do zatrzymania procesu, ale nie jest częścią samego odczytu i powinno być używane ostrożnie, ponieważ wymuszone zakończenie może spowodować utratę niezapisanych danych.
Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów, a analiza procesów PowerShell może być jednym z elementów rozpoznania problemów z działaniem systemu Windows. Ostateczna ocena wymaga zestawienia informacji z Get-Process z objawami zgłaszanymi podczas pracy, konfiguracją uruchamiania, stanem aktualizacji, komunikatami błędów oraz wynikami testów sprzętowych. Lista procesów jest więc punktem wyjścia do diagnostyki, a nie samodzielnym dowodem uszkodzenia konkretnego komponentu.