Svchost là gì và tại sao nhiều phiên bản của nó đang chạy?


27

Có sáu trường hợp đang chạy trên máy tính để bàn của tôi và có thể là mười trường hợp trên máy chủ mà tôi quản lý. Đây là gì, và nó có quan trọng đối với chức năng hệ thống?


LOL. Tôi có 91 người trong số họ đang chạy trong máy tính xách tay của tôi!
Sen Jacob

Câu trả lời:


16

svchost, lưu trữ các dịch vụ trong Windows Xem KB . Nếu bạn sử dụng Process Explorer, bạn có thể thấy dịch vụ nào đang được chạy trong một quy trình cụ thể.


1
Vì vậy, điều này ít nhiều tương đương với inetd trong linux? Một khung máy chủ mục đích chung, để các nhà phát triển có thể viết các dịch vụ mà không phải lo lắng về phần máy chủ của mã?
Jason Tan

Cùng một loại ý tưởng Jason, nhưng rõ ràng với phạm vi xa hơn inetd mà thường chỉ hỗ trợ các tác vụ loại webbish phải không? Một sự tương tự tốt đẹp, chắc chắn đủ gần để kiếm tiền ...
Rob Moir

20

Nhiều thành phần thực thi của Windows được triển khai dưới dạng dịch vụ (xem tất cả các dịch vụ khi mở máy của bạn Control Panel > Administrative Tools > Services). Đây là những chương trình chuyên biệt chạy trong nền. Chúng không được bắt đầu bởi người dùng đã đăng nhập, nhưng bản thân hệ điều hành của tôi.

Hầu hết các dịch vụ không phải là tệp thực thi độc lập (tệp EXE), nhưng được triển khai trong các thư viện (DLL), có thể được sử dụng bởi các quy trình đang chạy. Như tên cho thấy, Svchost hoặc "Máy chủ dịch vụ" là tệp thực thi tiêu chuẩn của Windows để chạy các DLL này. Bạn có thể tìm thấy tập tin svchost.exe trong %systemroot%\system32thư mục.

Nếu bạn muốn biết trường hợp nào của Svchost đang thực thi dịch vụ nào, hãy gõ

 tasklist /svc /fi "IMAGENAME eq svchost.exe"

trên bảng điều khiển dòng lệnh (cmd).

Trên máy, nơi tôi đã tạo ảnh chụp màn hình, một trong những trường hợp của Svchost đang chạy 21 dịch vụ khác nhau, ví dụ. Nhóm dịch vụ này cho phép kiểm soát tốt hơn và gỡ lỗi dễ dàng hơn, theo tài liệu của Microsoft .

văn bản thay thế

Các nhóm Svchost.exe được xác định trong khoá đăng ký sau:

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Mẹo (nếu bạn chạy Windows Vista, Windows 7 hoặc Windows Server 2008): bạn có thể mở Trình quản lý tác vụ và nhấp chuột phải vào một quy trình svchost.exe cụ thể, sau đó chọn tùy chọn "Chuyển đến dịch vụ". Điều này sẽ hiển thị tab Dịch vụ , nơi tất cả các dịch vụ đang chạy trong svchost.exequy trình đã chọn sẽ được đánh dấu.

Có một tài liệu rất thú vị trong Trung tâm tải xuống của Microsoft:

Tham khảo dịch vụ hệ thống Microsoft Windows Server 2003

Tài liệu này chứa các bản tóm tắt tất cả các dịch vụ có sẵn cho họ hệ điều hành Windows Server 2003. Các dịch vụ được liệt kê theo thứ tự bảng chữ cái theo tên hiển thị. Theo mô tả của từng dịch vụ, một bảng liệt kê thông tin chính về dịch vụ.

Mỗi dịch vụ Windows được liệt kê với tất cả các chi tiết của nó. Ví dụ, bạn tìm hiểu rằng tên tệp thực thi của dịch vụ Terminal Services là

 svchost.exe -k termsvcs 

+1 cảm ơn về thông tin .... bạn và đại diện 8000 điểm của bạn ... nghiêm túc mà nói, đó là một nguồn tài nguyên tuyệt vời để có. Tôi cho rằng mình thành thạo Win CLI, nhưng không biết điều này. Cảm ơn!
cop1152

7

Svchost là viết tắt của "Dịch vụ lưu trữ". Nó giữ cho hầu hết các Dịch vụ trên máy của bạn chạy. Sẽ có một vài Dịch vụ tự lưu trữ trong tệp .exe của riêng họ, nhưng hầu hết các Dịch vụ của Windows cần được lưu trữ bên trong quy trình svchost.exe. Dịch vụ trên máy của bạn xử lý các nội dung quan trọng như mạng, máy chủ RpC, âm thanh, nhật ký sự kiện, v.v.

Nhập "services.msc" trong Bắt đầu-> Chạy để xem Dịch vụ bạn đang chạy trên máy. Nếu bạn thấy bất cứ ai không hoàn hảo, bạn có thể dừng dịch vụ.

Nhập "danh sách tác vụ / SVC" để xem dịch vụ nào được lưu trữ bởi các tệp svchost.exe khác nhau.


1

Dưới đây là một lớp lót PowerShell xuất ra tất cả các dịch vụ được lưu trữ trong các quy trình svchost.exe:

PS>get-process svchost | % {get-wmiobject win32_service -filter "processid=$($_.id)"} | format-table processid,name,displayname,state,status -auto

processid name          displayname                               state   status
--------- ----          -----------                               -----   ------
      316 HTTPFilter    HTTP SSL                                  Running OK
     1328 DcomLaunch    DCOM Server Process Launcher              Running OK
     1328 TermService   Terminal Services                         Running OK
     1392 RpcSs         Remote Procedure Call (RPC)               Running OK
     1528 AudioSrv      Windows Audio                             Running OK
     1528 BITS          Background Intelligent Transfer Service   Running OK
     1528 Browser       Computer Browser                          Running OK

Phiên bản ngắn hơn của một lớp lót trông như thế này:

gps svchost | % {gwmi win32_service -f "processid=$($_.id)"} | ft proc*,name,disp*,stat* -auto

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.