Procesy w Powershellu: Zatrzymywanie i lista procesów


 

powershell_icon_150Pamię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:
powershell_processes

Możemy wyświetlić tylko wybrany proces podając jego nazwę:

get-process UNS
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:

Are you sure you want to perform the Stop-Process operation on the following item: svchost(124)?
[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.


Podobne Tematy:

  • Krzysztof

    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