Procesy w Powershellu: Zatrzymywanie i lista procesów
Pamiętacie mój artykuł o zarządzaniu procesami systemowymi w CMD? Uczyłem w nim między innymi jak je wyświetlić i jak je „zabijać”. Dla zachowania równowagi w przyrodzie, muszę pokazać Wam kilka podobnych sztuczek w Powershell.
A więc, do rzeczy 🙂
Informacje o aktywnych procesach
Do wyświetlenie listy aktywnych procesów na lokalnych komputerze służy cmdlet:
Get-process
Lista procesów, jakie znajdziecie na swoich maszynach za pewne będzie spora – oto mały, przykładowy fragment:
Możemy wyświetlić tylko wybrany proces podając jego nazwę:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
——- —— —– —– —– —— — ———–
231 19 5044 10092 75 0,33 3516 UNS
Nie musimy jednak podawać całej nazwy procesu. Ciąg znaków możemy zastąpić gwiazdką:
get-process Av*
Można również wyświetlać procesy po ich ID:
Get-Process -id 10
Lista procesów na zdalnym komputerze:
Get-Process -Name nazwa_procesu -ComputerName nazwa_komputera
Lista procesów na wielu zdalnych maszynach i maszynie lokalnej (localhost):
Get-Process -Name Av* -ComputerName localhost, computer_zdalny1, computer_zdalny2
Jak zakończyć (zabić) proces w Powershellu?
Możemy to zrobić na przykład po nazwie:
stop-process -processname nazwa_procesu
Zakończenie procesu na zdalnej maszynie:
stop-process -processname nazwa_procesu -ComputerName nazwa_komputera
Krytyczne procesy systemowe przed zamknięciem wymagają dodatkowego potwierdzenia:
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is „Y”):
Możemy również podać ID procesu do zabicia:
stop-process -id 1810
W tym miejscu pozwolę sobie zakończyć poradę. Jeśli interesują Was bardziej zaawansowane operacje na procesach, lub sami znacie jakiś trick, którym warto się podzielić – piszcie śmiało.
Przydatne może być zatrzymywanie kilku procesów działających pod tą samą nazwą. Wystarczy wtedy przekazać polecenie Get-Process do potoku, np. w ten sposób:
Get-Process -Name „nazwa_procesu” | Stop-Process