Bạn đang tự hỏi tại sao lại có hàng tá các tiến trình đang chạy trên máy tính của bạn với tên svchost.exe. Bạn không có thể “kill’ chúng, và bạn không nhớ đã chạy chúng ... vậy chúng là gì?

svchost.exe là gì?

Theo Microsoft: “svchost.exe là tên 1 tiến trình hỗ trợ chung cho các dịch vụ chạy từ các thư viện liên kết động (dynamic-link libraries)”
Thời gian trước đây, Microsoft đã chuyển tất cả các chức năng từ các dịch vụ nội bộ Windows vào các tập tin .Dll thay vì các tập tin .exe. Điều này có ý nghĩa hơn cho khả năng tái sử dụng ... nhưng có 1 vấn đề là bạn không thể chạy một tập tin .Dll trực tiếp từ Windows, nó phải được tải từ một file thực thi (exe). Do vậy mà svchost.exe được sinh ra.

Tại sao lại có quá nhiều tiến trình svchost.exe hoạt động?

Nếu bạn từng quan sát vào phần Services trong bảng điều khiển, bạn có thể nhận thấy rằng có rất nhiều dịch vụ được Windows yêu cầu. Nếu như mọi dịch vụ đều chạy dưới một svchost.exe thì một sự “thất bại” trong số chúng có thể làm hỏng toàn bộ Windows ... Vì vậy chúng đã được phân tách ra một cách riêng rẽ.
Những dịch vụ được tổ chức thành các nhóm logic, sau đó một svchost.exe sẽ được tạo ra cho mỗi nhóm. Ví dụ, một svchost.exe chạy 3 dịch vụ liên quan đến tường lửa. Một svchost.exe khác có thể chạy tất cả các dịch vụ liên quan đến giao diện người dùng, và cứ như vậy...

Vậy bạn có thể làm gì?

Bạn có thể tắt các dịch vụ không cần thiết bằng cách vô hiệu hóa hoặc tạm dừng các dịch vụ không cần chạy. Ngoài ra, nếu bạn nhận thấy một svchost.exe chiếm nhiều hiệu suất CPU bạn có thể khởi động lại các dịch vụ đang chạy dưới svchost.exe đó.
Vấn đề lớn nhất là việc xác định những dịch vụ nào đang được chạy trong một svchost.exe nào ... Và chúng ta sẽ bàn điều này dưới đây.
Nếu bạn tò mò về những gì chúng ta đang nói tới, chỉ cần mở Task Manager và đánh dấu vào ô "Show processes from all users”



Nếu bạn muốn xem những dịch vụ nào đang được hỗ trợ bởi một svchost.exe cụ thể, bạn có thể sử dụng lệnh tasklist từ command promt để xem danh sách các dịch vụ.


tasklist /SVC


Kiểm tra trong Task Manager

Bạn có thể right-click lên 1 tiến trình svchost.exe cụ thể, và chọn “Go to Service”




Điều này sẽ đưa bạn đến tab Services, nơi mà các dịch vụ đang chạy trong tiến trình svchost.exe đó sẽ được lựa chọn:



Những điều tuyệt vời là khi làm theo cách này là bạn có thể thấy được tên thực của dịch vụ trong cột Description, vì vậy bạn có thể chọn để vô hiệu hóa dịch vụ nếu bạn không muốn nó chạy.

Sử dụng Process Explorer

Bạn có thể sử dụng tiện ích Process Explorer từ Microsoft / Sysinternals để xem dịch vụ nào đang chạy như một phần của một tiến trình svchost.exe.
Di chuột qua một trong các quá trình sẽ cho bạn thấy một danh sách popup của tất cả các dịch vụ:



Hoặc bạn cũng có thể double-click lên 1 svchost.exe và lựa chọn tab Services, nơi mà bạn có thể lựa chọn để dùng 1 trong số các dịch vụ



Vô hiệu hóa dịch vụ

Mở “Services” từ phần “administrative tools” của “Control Panel”
hoặc gõ “services.msc” trong box “search” của start menu hoặc box “Run”
Tìm những dịch vụ trong danh sách mà bạn muốn vô hiệu hóa và cũng double-click lên nó hoặc right-click và chọn “properties”



Thay đổi “start Type” thành “Disabled” và click nút “Stop” để dừng nó ngay lập tức



Bạn cũng có thể dùng dòng lệnh để vô hiệu hóa các dịch vụ. Trong lệnh dưới đây "trkwks" là tên dịch vụ từ hộp thoại trên, nhưng nếu bạn quay trở lại lệnh tasklist ở đầu bài viết này, bạn sẽ nhận thấy bạn có thể tìm thấy nó nằm ở đây.


sc config trkwks start= disabled

Hy vọng bài viết này có ích với các bạn!