svchost คืออะไรและทำไมจึงมีหลายอินสแตนซ์ของมันทำงานอยู่


27

มีหกอินสแตนซ์ที่ทำงานบนเดสก์ท็อปของฉันและอาจเป็นสิบบนเซิร์ฟเวอร์ที่ฉันจัดการ นี่คืออะไรและมีความสำคัญต่อการทำงานของระบบหรือไม่


ฮ่า ๆ. ฉันมี 91 ของพวกเขาทำงานในแล็ปท็อปของฉัน!
Sen Jacob

คำตอบ:


16

Svchost บริการโฮสต์ใน Windows ดูKB หากคุณใช้Process Explorerคุณจะเห็นว่าบริการใดบ้างที่กำลังทำงานอยู่ในกระบวนการเฉพาะ


1
ดังนั้นนี่จึงเทียบเท่ากับ inetd ภายใต้ลินุกซ์มากกว่าหรือน้อยกว่า? เฟรมเวิร์กเซิร์ฟเวอร์เอนกประสงค์เพื่อให้นักพัฒนาสามารถเขียนบริการโดยไม่ต้องกังวลเกี่ยวกับส่วนของเซิร์ฟเวอร์ของรหัสได้หรือไม่
เจสันตาล

แนวคิดแบบเดียวกันกับเจสัน แต่เห็นได้ชัดว่ามีช่วงต่อไปมากกว่า inetd ซึ่งโดยทั่วไปแล้วจะประกอบไปด้วยงานประเภท webbish ใช่ไหม คล้ายคลึงดี แต่พอใกล้อย่างแน่นอนเป็นเงินสด ...
ร็อบมอร์

20

องค์ประกอบการดำเนินการหลายอย่างของ Windows ได้รับการปรับใช้ให้เป็นบริการ (ดูบริการทั้งหมดที่เปิดในเครื่องของคุณControl Panel > Administrative Tools > Services) เป็นโปรแกรมพิเศษที่ทำงานอยู่เบื้องหลัง พวกเขาไม่ได้เริ่มต้นโดยผู้ใช้ที่เข้าสู่ระบบ แต่เป็นระบบปฏิบัติการของฉันเอง

บริการส่วนใหญ่จะไม่สามารถทำงานได้แบบเอกเทศ (ไฟล์ EXE) แต่มีการใช้งานในไลบรารี (DLL) ซึ่งสามารถใช้งานได้โดยกระบวนการที่กำลังทำงานอยู่ ตามชื่อที่แนะนำ Svchost หรือ "Service Host" นั้นเป็นมาตรฐานของ Windows สำหรับการเรียกใช้ DLLs เหล่านี้ คุณสามารถค้นหาไฟล์ svchost.exe ใน%systemroot%\system32ไดเรกทอรี

หากคุณต้องการทราบว่าอินสแตนซ์ของ svchost กำลังดำเนินการบริการใดให้พิมพ์

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

บนคอนโซลบรรทัดรับคำสั่ง (cmd)

บนเครื่องที่ฉันทำสกรีนช็อตหนึ่งในอินสแตนซ์ของ svchost กำลังเรียกใช้บริการที่แตกต่างกัน 21 บริการ การจัดกลุ่มของบริการนี้จะช่วยให้การควบคุมที่ดีและแก้จุดบกพร่องได้ง่ายขึ้นตามเอกสารไมโครซอฟท์

ข้อความแสดงแทน

กลุ่ม Svchost.exe ถูกระบุในรีจิสตรีคีย์ต่อไปนี้:

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

เคล็ดลับ (ถ้าคุณเรียกใช้ Windows Vista, Windows 7 หรือ Windows Server 2008): คุณสามารถเปิดตัวจัดการงานและคลิกขวาที่กระบวนการ svchost.exe โดยเฉพาะจากนั้นเลือกตัวเลือก "ไปที่บริการ" นี่จะแสดงแท็บบริการโดยที่บริการทั้งหมดที่ทำงานภายใต้svchost.exeกระบวนการที่เลือกจะถูกทำเครื่องหมาย

มีเอกสารที่น่าสนใจในศูนย์ดาวน์โหลดของ Microsoft:

การอ้างอิงบริการระบบ Microsoft Windows Server 2003

เอกสารนี้มีบทสรุปบริการทั้งหมดที่มีให้สำหรับตระกูล Windows Server 2003 ของระบบปฏิบัติการ บริการจะแสดงตามลำดับตัวอักษรตามชื่อที่แสดง ตามคำอธิบายของแต่ละบริการตารางจะแสดงข้อมูลสำคัญเกี่ยวกับบริการ

บริการ Windows ทุกรายการจะแสดงพร้อมรายละเอียดทั้งหมด ตัวอย่างเช่นคุณได้เรียนรู้ว่าชื่อไฟล์ที่เรียกใช้งานได้ของบริการ Terminal Services คือ

 svchost.exe -k termsvcs 

+1 ขอบคุณสำหรับข้อมูล .... คุณและตัวแทน 8000 จุดของคุณ ... อย่างจริงจังนั่นเป็นทรัพยากรที่ยอดเยี่ยม ฉันพิจารณาตัวเองรอบรู้ใน Win CLI แต่ไม่ได้ตระหนักถึงสิ่งนี้ ขอบคุณ!
cop1152

7

Svchost ย่อมาจาก "Service Host" มันทำให้บริการส่วนใหญ่ในเครื่องของคุณทำงาน จะมีบริการบางอย่างที่โฮสต์ตัวเองในไฟล์. exe ของตัวเอง แต่บริการส่วนใหญ่ของ Windows จะต้องถูกโฮสต์ภายในกระบวนการ svchost.exe บริการบนเครื่องของคุณจัดการกับสิ่งสำคัญเช่นระบบเครือข่ายเซิร์ฟเวอร์ RpC เสียงบันทึกเหตุการณ์ ฯลฯ

พิมพ์ "services.msc" ใน Start-> Run เพื่อดูบริการที่คุณใช้บนเครื่องของคุณ หากคุณเห็นว่าไม่มีใครรู้คุณสามารถหยุดให้บริการได้

พิมพ์ "tasklist / SVC" เพื่อดูว่าบริการใดที่โฮสต์อยู่โดยไฟล์ svchost.exe ที่แตกต่างกัน


1

นี่คือ PowerShell one-liner ที่ให้บริการทั้งหมดที่โฮสต์ในกระบวนการ 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

เวอร์ชั่นที่สั้นกว่าของซับแบบหนึ่งจะเป็นดังนี้:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.