Управління процесами з командного рядка
Головна Windows Управління процесами Windows з командного рядка
Для управління процесами Windows існує багато різних утиліт і додатків. Як правило, для цих цілей командний рядок використовується дуже рідко. Але в деяких випадках, це єдина можливість і інші засоби недоступні. Таке може виникнути при блокуванні стандартних диспетчерів різними вірусами та іншими, нехорошими програмами. Тому, буде дуже корисно знати і вміти працювати з процесами через командний рядок.
Щоб керувати процесами, за допомогою можливостей командного рядка, в системі може мати два додатки: tasklist і taskkill. З їх назви можна здогадатися і про їх призначення - перше може відображати список всіх запущених процесів на даному комп'ютері, або на віддаленій машині, а друга вміє їх зупиняти. Давайте глянемо, як це працює на практиці.
Введіть, у вікні терміналу, tasklist і командний рядок видасть весь список робочих процесів на даному комп'ютері.

Всі дані будуть відображатися в табличній формі, але можна поміняти вид даних в інший формат. Скористайтеся параметром / fo і все відобразиться у вигляді списку (або як CSV), а якщо використовувати параметр / v. то в цей список будуть включені більш докладні дані про кожного процесі. Введіть команду taskliist / v / fo list (без лапок природно) і у вікні повинна з'явитися приблизно така картина.

Зазвичай список виходить чималих розмірів, і щоб не гортати його занадто довго, виконаємо більш точний запит. Для цих цілей існує параметр / fi. здатний уточнити пошук процесів використовуючи фільтри. Для прикладу, введемо команду, яка відобразить всі процеси, запущені від імені користувача user і займають до 40 мегабайт в пам'яті комп'ютера. Команда виглядає наступним чином: tasklist / fi »username eq user» / fi »memusage le 40000». А на малюнку нижче представлений результат роботи команди.

Припустимо, ми нашили процеси, які хочемо завершити. Тепер настала черга утиліти «taskkill». Для припинення роботи процесу можна використовувати його ім'я, або ідентифікатор PID. а можна припиняти процеси використовуючи різні фільтри. Для експерименту, ми запустимо кілька вікон програми Блокнот (notepad.exe) і на них випробуємо різні способи.

Щоб знову не ритися у всіх знайдених процесах, можна задати фільтр для отримання окремих, які відповідають критеріям, процесів. Для цього існує команду Where-Object. Давайте отримаємо табличку з процесами, завантажувати процесор на даному комп'ютері і вибудуємо їх в порядку зростання навантаження. Скористаємося командою наступного вигляду: Get-Process | where | sort cpu
Результат буде мати приблизно такий вигляд:

Тут можна отримати повну інформацію про будь-якому занедбаному процесі. Зараз ми дізнаємося список всіх властивостей процесу cmd. Це можна зробити за допомогою такої команди:
Get-Process -Name cmd | Get-Member -Membertype property

Виведемо тільки потрібні властивості. Наприклад, залишимо тільки ім'я, ідентифікатор процесу, шлях до її виконавчому файлу, підключені модулі і час, коли процес був запущений. Все це ми виводимо списком, за допомогою такої команди:
Get-Process -Name cmd | Format-List name, id, path, modules, starttime

Завдяки цьому ми дізнаємося про те, хто запустив процес, як сильно він вантажить систему, де розташовується його файл і ще купу різної, корисної і не дуже інформації.
Щоб зупинити процес через PowerShell використовуйте спеціальний командою Stop-Process. Для того, щоб вказати потрібний процес для завершення, використовуйте його ім'я або ідентифікатор. Наприклад, можна по конвеєру припинити роботу блокнота:
Для роботи з процесами на іншому, віддаленому комп'ютері необхідно використовувати зовсім іншою командою - Get-WmiObject. Зараз подивимося, які процеси запущені на комп'ютері з ім'ям «PC»:
Get-WmiObject win32_process -computername PC | ft name, processid, description

Щоб дізнатися більше інформації та різних ключів, для роботи з процесами через PowerShell. використовуйте вбудовану довідку. Запустіть команду Get-Help «ім'я команди» і з'явиться довідка за вказаною параметру. Є ще дві додаткові утиліти, здатні виконувати операції з процесами. Ними є Pslist і Pskill. Спочатку їх в системі немає, вони входять в пакет PSTools.
Самі по собі ці програми не потребують встановлення. Їх достатньо скопіювати в будь-яке місце на своєму жорсткому диску. Щоб запустити, зайдіть в папку, де вони зберігаються, і активуйте потрібної командою.

Цікавою функцією Pslist є можливість роботи в режимі диспетчера процесів. Вся інформація постійно оновлюється і можна задавати відповідний інтервал отримання актуальних даних. За цей режим відповідальний ключ -s. Припустимо, необхідно встановити режим диспетчера з оновленням кожні десять секунд, ця команда буде виглядати так: tasklist -s -r 10

Завершити будь-який процес можна за допомогою утиліти Pskill. Введіть цю команду і ідентифікатор процесу, або його ім'я. На малюнку нижче можете подивитися, як це буде виглядати в випадку з бідним блокнотом.
Додаткову інформацію, у вигляді довідки, можна відкрити додатковим параметром /?