Оптимізація сервісів та процесів за допомогою sc, tasklist та taskkill

Останнє оновлення: 29/10/2025
Автор: Ісаак
  • Розширене використання списку завдань та taskkill для аудиту та закриття процесів за допомогою фільтрів, CSV та віддаленого виконання.
  • Комплексне управління послугами за допомогою sc: створення, запит, запуск, зупинка та видалення локально та віддалено.
  • Найкращі практики: мінімальні привілеї, запобіжні заходи щодо віддаленого доступу та відповідальне використання /F і фільтрів.

Оптимізація служб і процесів у Windows

Якщо ви щодня працюєте з Windows , контроль за тим, що виконується, і як реагувати на зависання чогось – це головна відмінність між швидкою та повільною машиною. На щастя, за допомогою кількох вбудованих команд , таких як tasklist, taskkill та sc, ви можете проводити аудит, фільтрувати, зупиняти та автоматизувати процеси й служби як локально, так і на віддалених машинах.

У цьому практичному посібнику я крок за кроком поясню, як перераховувати процеси в різних форматах, як застосовувати розширені фільтри, як безпечно закривати завислі програми та як точно керувати системними службами. Все це висвітлено в реальних прикладах, готових до копіювання та вставки , попередженнях про віддалений доступ, а також корисних порадах і підказках , які спростять навігацію в консолі.

Процеси та послуги: чим вони схожі та чим відрізняються

У Windows процес — це запущена програма, яка може мати потоки, виконувати завдання та завершувати свою роботу після завершення. Служба ж — це системний компонент, який зазвичай працює у фоновому режимі, його можна запускати, зупиняти, відновлювати або перезапускати , і він за своєю природою залишається активним, доки система або адміністратор не вирішить інакше.

Ключові відмінності включають: процеси можуть виконуватися на передньому плані або у фоновому режимі та завершуються за потреби, тоді як служби керуються за допомогою станів (запуск, зупинка, пауза, продовження) та призначені для збереження. Процес може створювати або керувати службами, а служба, у свою чергу, може запускати дочірні процеси.

Якщо ви віддаєте перевагу графічному інтерфейсу, диспетчер завдань (taskmgr.exe) надає знімок вашої поточної системи: вкладку «Процеси» для процесора, пам’яті, графічного процесора, мережі та стану (включаючи класичний пункт «Не відповідає»), а також вкладку «Служби» для перегляду їх PID, стану, типу запуску та виробника. Але коли вам потрібна точність, автоматизація та віддалений доступ, командний рядок — ваш найкращий друг.

Ключові інструменти для керування системою з консолі

Найважливіші утиліти, які вам потрібно знати: tasklist (для перегляду процесів), taskkill (для завершення процесів за PID або назвою образу) та sc (для керування службами за допомогою диспетчера керування службами). Також дуже корисними є WMIC (для запиту WMI через консоль) та команди query/qprocess для перевірки процесів за сеансом або користувачем.

За допомогою цих команд ви можете генерувати звіти CSV для Excel, створювати списки без заголовків, застосовувати фільтри за використанням пам'яті або станом та діяти з хірургічною точністю: від завершення роботи несанкціонованого notepad.exe до закриття цілого дерева дочірніх процесів, запущених консоллю cmd.exe.

Перелік процесів зі списком завдань: фільтри, формати та приклади

Найпростіша команда для перегляду запущених команд — це `tasklist` . Без будь-яких опцій ви отримаєте назву образу, PID, сеанс та використання пам'яті. Але найцікавіше — це модифікатори, які дозволяють фільтрувати та налаштовувати вивід на ваш смак.

Дуже практичні параметри: /V (детальний), /SVC (показує служби, що розміщуються кожним процесом), /M (які процеси завантажують певну DLL/EXE), /FO ("TABLE", "LIST", "CSV"), /NH (приховує заголовки в TABLE/CSV) та /FI (фільтри). Також є /S , /U та /P для віддаленого виконання з обліковими даними.

За допомогою цих команд ви можете генерувати звіти CSV для Excel, створювати списки без заголовків, застосовувати фільтри за використанням пам'яті або станом та діяти з хірургічною точністю: від завершення роботи несанкціонованого notepad.exe до закриття цілого дерева дочірніх процесів, запущених консоллю cmd.exe.

Щоб переглянути повну довідку на робочому столі, ви можете скопіювати вивід за допомогою команди: "TASKLIST /? >%userprofile%/Desktop/uso.txt" . Таким чином, ви матимете під рукою всі пояснені параметри та не покладатиметеся на пам'ять під час роботи зі складними фільтрами.

tasklist
tasklist /v
tasklist /svc
tasklist /m ntdll.dll

Вихідний CSV-файл ідеально підходить для відкриття в Excel або обробки за допомогою скриптів. Ви можете створити дуже детальний звіт, наприклад: CSV + детальний файл для робочого столу, готовий до аналізу з фільтрами та зведеними таблицями.

tasklist /v /fo csv >%userprofile%/Desktop/list.csv

Якщо ви шукаєте щось більш лаконічне, з розміщеними сервісами та в текстовому форматі: LIST + TXT перенаправляє на робочий стіл. Це ідеально підходить для швидкого перегляду в Блокноті та для легкого обміну з колегою.

tasklist /svc /fo list >%userprofile%/Desktop/list.txt

Фільтрація неймовірно потужна. Наприклад, ви можете залишити лише запущені програми та переглянути їх детально: це допоможе вам зосередитися на тому, що наразі активне, і не врахувати завдання, які призупинено або заблоковано в деяких версіях.

tasklist /v /fi "STATUS eq running"

Ще один класичний спосіб: визначення того, які процеси завантажують певну DLL-бібліотеку, таку як ntdll.dll . Дуже корисно для діагностики або дослідження залежностей.

tasklist /m ntdll.dll

Також можлива фільтрація за використанням пам'яті за допомогою діапазонів . Наприклад, щоб побачити процеси, що використовують більше 15000 КБ та менше 19000 КБ оперативної пам'яті, можна об'єднати дві команди /FI та отримати саме той сегмент, який вас цікавить.

tasklist /fi "memusage gt 15000" /fi "memusage lt 19000"

Ще одна повторювана закономірність включає об'єднання записів : запис notepad.exe та firefox.exe з двома ланцюговими викликами з використанням оператора & , що залишає обидва результати на екрані за один прохід.

tasklist /fi "IMAGENAME eq notepad.exe" & tasklist /fi "IMAGENAME eq firefox.exe"

Вам потрібні CSV-файли безпосередньо в консолі, але лише для процесів з PID > 1000 ? Немає проблем: завдяки фільтрації та форматуванню все готове до перенаправлення або обробки в іншій програмі.

tasklist /v /fi "PID gt 1000" /fo csv

Якщо ви хочете експортувати цей CSV-файл, просто додайте перенаправлення. Це дуже зручно, коли ви створюєте звіти периметра або збираєте дані про інциденти.

tasklist /v /fi "PID gt 1000" /fo csv > procs.csv

Фільтрація за користувачем та статусом, виключаючи системні повноваження, корисна під час пошуку активних процесів "користувача" . Цей режим перегляду фільтрує системний шум і дозволяє зосередитися на тому, що зазвичай спричиняє проблеми в офісному середовищі.

tasklist /fi "USERNAME ne NT AUTHORITY\SYSTEM" /fi "STATUS eq running"

У віддалених сценаріях список завдань чудово підходить. Ви можете запитувати дані сервера під назвою srvmain , використовуючи свої поточні або власні облікові дані, а також фільтрувати за завантаженими модулями та службами. Майте на увазі, що фільтри WINDOWTITLE та STATUS не застосовуються віддалено.

tasklist /s srvmain
tasklist /s srvmain /u maindom\hiropln /p p@ssW23
tasklist /s srvmain /svc /fi "MODULES eq ntdll*"

Коротка порада: якщо ви хочете, щоб вікно командного рядка залишалося відкритим після запуску списку, скористайтеся командою CMD /K . Це простий спосіб «бачити та залишатися» в консолі без необхідності перезапускати її щоразу.

CMD /K TASKLIST /V

Закриття завдань за допомогою taskkill: синтаксис, фільтри та реальні приклади

Коли програма перестає відповідати, споживає ресурси без потреби або відкриває забагато дочірніх процесів, taskkill — це рішення. Він дозволяє завершити процес за PID або назвою образу, примусово завершити його та, за потреби, зупинити все дерево дочірніх процесів за допомогою одного модифікатора.

  Як бути богинею... Чому б і ні?

Загальний синтаксис підтримує віддалене виконання з ім'ям користувача та паролем, кілька ланцюгових фільтрів та виконання за PID або IMAGE_NAME (з підстановочними символами для імен, якщо ви додаєте фільтр). Примітка: Віддалене виконання завжди примусове, а фільтри WINDOWTITLE/STATUS не застосовуються.

taskkill <usuario> ]]] {  }  

Завершення за допомогою PID – це найпряміший підхід, який зменшує ризик випадкового завершення інших процесів зі схожими іменами. Ви можете завершити один або кілька PID однією командою, що корисно під час очищення зомбі-процесів , які самі себе реплікують.

taskkill /pid 1230
taskkill /pid 1230 /pid 1241 /pid 1253

Завершення роботи за назвою образу зручне для "вимкнення" певної програми та всіх її процесів, особливо якщо вона використовує багатопроцесорність, як це робить більшість сучасних браузерів. Використання /F примусово закриває програму, а /T видаляє дочірні процеси.

taskkill /f /im notepad.exe

Якщо ви хочете завершити всі процеси з PID більше або рівним 1000, незалежно від їхньої назви, ви можете поєднати фільтр з `/im *` . Цей шаблон призначений для дуже специфічних цілей виправлення; використовуйте його з розумом.

taskkill /f /fi "PID ge 1000" /im *

Фільтри за статусом і заголовком дуже корисні для усунення вузьких місць . Наприклад, ви можете примусово завершити роботу будь-якого вікна, яке «не відповідає», виключаючи вікна, заголовок яких не відповідає вашим критеріям. Пам’ятайте, що ці фільтри не працюють віддалено.

taskkill /f /fi "STATUS eq NOT RESPONDING"

Варто знати про спеціальні процеси: закриття wscript.exe перериває будь-які завислі скрипти VBScript, а перезапуск Провідника Windows позбавляє вас проблем, коли панель завдань або оболонка зависає.

taskkill /f /im wscript.exe
taskkill /f /im explorer.exe & start explorer.exe

Якщо ви бажаєте дати системі перерву перед перезапуском оболонки, додайте кілька секунд ` timeout` . Це невеликий крок, який може запобігти помилкам під час виконання операцій з диском.

taskkill /f /im explorer.exe & timeout /nobreak 05 & start explorer.exe

Ще одне поширене використання: закриття консолі та всього, що вона могла запустити, каскадно. Використання /T гарантує, що жодні дочірні команди не виконуються у фоновому режимі.

taskkill /f /im cmd.exe /t

Taskkill також підтримує віддалене виконання з обліковими даними, що є важливим, коли сервер перевантажений процесом, що споживає багато ресурсів під час запуску . Підстановочні символи дозволяють вам знаходити кілька виконуваних файлів зі схожими іменами, наприклад, "note*", для пошуку Блокнота та інших пов'язаних програм.

taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *

Якщо вам потрібно діяти з урахуванням критерію безпеки, ви також можете завершити роботу лише того, хто запустив систему ( користувач NT AUTHORITY\SYSTEM ), щоб уникнути непотрібного закриття інструментів користувача.

taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe

А якщо вам потрібне щось ще простіше, є tskill , який дозволяє завершувати процеси на рівні сеансу (менш гнучкий, ніж taskkill, але корисний у старіших або дуже обмежених середовищах). Адміністратори можуть використовувати його проти процесів в інших сеансах.

tskill 1230
tskill explorer /id:1

Автоматизуйте вимкнення під час запуску Windows за допомогою пакетних файлів

Існують сценарії, коли корисно завершувати процеси одразу після входу в систему, наприклад, щоб вимкнути непотрібні служби , які перешкоджають запуску. Ви можете зробити це за допомогою простого пакетного файлу в папці «Автозавантаження» без використання планувальника завдань.

  Як бути богинею... Чому б і ні?

Створіть .bat-файл із потрібними рядками taskkill та перемістіть його до папки «Автозавантаження» користувача. Ви можете легко відкрити цю папку, ввівши shell:Startup у діалоговому вікні «Виконати» (Win+R) та підтвердивши дію.

@echo off
taskkill /f /im proceso1.exe
taskkill /f /im proceso2.exe
taskkill /f /im proceso3.exe

Інші способи отримання списку: WMIC, query та qprocess

Для розширеної перевірки та експорту необроблених даних WMIC – це справжнє золото, яке доповнює інструменти для виявлення шкідливих процесів . Ви можете вибрати стовпці, які вас цікавлять (заголовок, командний рядок, PID тощо) та експортувати їх у файл на диску для подальшого аналізу або включення до звіту.

WMIC /OUTPUT:C:\procs.txt PROCESS get Caption,Commandline,Processid

Крім того, за допомогою `query` та його псевдоніма `qprocess` легко побачити, хто що запускає, в якому сеансі та з яким PID. Це дуже корисно на серверах зі службами віддалених робочих столів, де кожен сеанс може мати власну ферму активних процесів.

query process *
query process /id:1

Це сімейство команд відображає, серед інших даних, користувача-власника, назву сеансу, ідентифікатор сеансу, назву процесу та PID. Разом вони забезпечують багатосеансову перспективу , яку також може відображати список завдань, але з особливим акцентом на служби терміналів.

Керування сервісами за допомогою sc: створення, запит, запуск та видалення

Для керування системними службами команда `sc` — це прямий шлях до диспетчера керування службами (Services.msc ). За її допомогою можна створювати нову службу, змінювати її опис, запускати або зупиняти, призупиняти або видаляти записи реєстру служб. Вона також працює віддалено, якщо перед командою додати `\\`.

Створення зразка служби з автоматичним запуском таке ж просте, як і вказівка ​​символьної назви, бінарного шляху та типу запуску. Зверніть увагу на пробіли після знаків рівності: вони мають значення в `sc`, тому дотримуйтесь точного синтаксису.

sc create NuevoServicio binpath= c:\windows\system32\NuevoServicio.exe start= auto

Щоб зробити це на віддаленому хості , додайте ім'я машини перед . Відтоді решта команд (start, stop, delete) працюватимуть точно так само з цим ім'ям служби.

sc create \\miservidor NuevoServicio binpath= c:\windows\system32\NuevoServicio.exe start= auto

Запуск, зупинка або зміна адміністративного статусу щойно створеної служби є простою. Ви часто поєднуєте ці команди з tasklist/taskkill, коли служба запускає проблемні дочірні процеси.

sc start NuevoServicio
sc stop NuevoServicio
sc pause NuevoServicio

Для аудиту дуже корисний запит `sc` у різних його формах: активні служби, всі служби, інтерактивні служби або певна служба з її статусом. Це подання доповнює `tasklist /svc`, коли вам потрібна інформація про статус та тип у режимі реального часу .

sc query
sc query type= service
sc query state= all
sc query NuevoServicio
sc query type= service type= interact

А коли служба більше не потрібна, її можна видалити з реєстру простим видаленням. Пам’ятайте, що її необхідно зупинити, інакше операція завершиться невдало або залишиться в стані очікування, доки не будуть звільнені ресурси.

sc delete NuevoServicio

Довідка, підтримувані фільтри та нюанси віддаленого режиму

Обидві команди, tasklist та taskkill, відображають дуже вичерпну довідку безпосередньо з консолі. Приділіть хвилинку, щоб її прочитати: ви побачите підтримувані фільтри, такі як PID (eq, ne, gt, lt, ge, le), IMAGENAME (eq, ne), USERNAME , MEMUSAGE , MODULES або WINDOWTITLE , а також значення статусу, такі як RUNNING, NOT RESPONDING або UNKNOWN (у деяких редакціях також SUSPENDED).

  Відкриття сеансів Hotmail – як закрити Outlook/Hotmail?

Є кілька правил, які слід пам’ятати: символ підстановки * для /IM приймається лише тоді, коли ви застосовуєте фільтр; у віддаленому режимі автодоповнення завжди примусове, а фільтри WINDOWTITLE та STATUS не оцінюються. Якщо ви збираєтеся запускати віддалено, переконайтеся, що у вас є дійсні облікові дані , що брандмауер дозволяє необхідний зв’язок і що служби RPC/WMI запущено.

Щоб зберегти довідку у файлі та звертатися до неї пізніше, не гублячись у консолі, пам’ятайте, що ви можете перенаправити вивід у файл .txt на робочому столі, що особливо корисно під час документування внутрішньої процедури або обміну сценаріями з командою.

TASKLIST /? >%userprofile%/Desktop/uso_tasklist.txt
TASKKILL /? >%userprofile%/Desktop/uso_taskkill.txt

Практичні приклади щоденного адміністрування

Звичайні процедури : моніторинг ресурсомістких процесів, визначення спільних DLL-бібліотек та підготовка CSV-файлу для подальшого перегляду – все це поширені завдання. Ось набір швидких операцій, усі з яких базуються на вищезазначеному та готові до об’єднання та налаштування відповідно до вашого середовища.

Створення детального списку та залишення консолі відкритою після цього корисно для моніторингу в режимі реального часу без закриття вікна. Поєднання CMD /K зі списком завдань забезпечує зручний робочий процес.

CMD /K TASKLIST /V

Знайдіть усі процеси, у яких завантажено модуль із шаблоном. Підстановочний знак у кінці імені DLL дозволяє охоплювати різні версії або варіанти однієї й тієї ж системної бібліотеки.

tasklist /m ntdll*

Об’єднаний список двох дуже поширених програм, щоб швидко побачити, скільки у вас відкритих екземплярів та їх використання пам’яті. Це може дати вам уявлення про надмірну багатопроцесорність або безладно запущені вкладки браузера.

tasklist /fi "IMAGENAME eq notepad.exe" & tasklist /fi "IMAGENAME eq firefox.exe"

Припинення доступу за обліковими даними та шаблоном імені образу на віддаленому сервері. Дуже корисно в корпоративних середовищах, де віддалений робочий стіл часто не відповідає через зчеплення офісних процесів.

taskkill /s srvmain /u maindom\hiropln /p p@ssW23 /fi "IMAGENAME eq note*" /im *

А якщо ви хочете бути суворо вибірковими за походженням, завершуйте лише те, що було запущено системним обліковим записом. Цей фільтр дуже ефективний під час дослідження поведінки служби стосовно процесів користувача.

taskkill /f /fi "USERNAME eq NT AUTHORITY\SYSTEM" /im notepad.exe

Поради та найкращі практики безпеки

Уникайте завершення системних процесів без попередньої перевірки їхньої функції; це може призвести до нестабільності або втрати даних. Перед завершенням ідентифікуйте процес за допомогою `tasklist /v` та, якщо можливо, спробуйте звичайне завершення роботи з інтерфейсу. Залиште ` /F` для випадків, коли немає альтернативи. Перегляньте список служб Windows 11, які не слід вимикати, перш ніж продовжувати.

Під час віддаленої роботи використовуйте облікові записи з мінімально необхідними правами, а якщо ви керуєте кількома машинами, розгляньте сценарії, які реєструють, що і коли було закрито. Перенаправляйте вивід у CSV або TXT, щоб залишити слід, і захищайте файли, що містять паролі або облікові дані, з тим самим завзяттям, як і виробничий секрет.

Зрештою, пам’ятайте, що іноді найшвидший спосіб – це графічний підхід: відкрийте диспетчер завдань і вручну закрийте несправний процес. Консоль чудово справляється з автоматизацією, точною діагностикою та повторюваними діями ; графічний інтерфейс приходить на допомогу, коли вам потрібен негайний клік.

Наразі ви освоїли, як інвентаризувати, фільтрувати та завершувати процеси за допомогою tasklist та taskkill, а також як створювати, запитувати та видаляти служби за допомогою sc, як локально, так і віддалено. Завдяки прикладам та попередженням у цій статті ви зможете створювати власні сценарії обслуговування, реагувати на збої за лічені секунди та генерувати відшліфовані звіти у форматі CSV або TXT для своєї команди, завжди застосовуючи принцип мінімального втручання та максимального контролю над тим, що працює у ваших системах.

Список завдань та Taskkill для керування процесами у Windows
Пов'язана стаття:
Як керувати процесами та завданнями у Windows за допомогою TASKLIST та TASKKILL