Apa itu svchost dan mengapa beberapa instance menjalankannya?


27

Ada enam contoh yang berjalan di desktop saya, dan mungkin sepuluh di server yang saya kelola. Apa ini, dan apakah penting untuk fungsi sistem?


LOL. Saya memiliki 91 di antaranya berjalan di laptop saya!
Sen Jacob

Jawaban:


16

svchost, menyelenggarakan layanan di Windows Lihat KB . Jika Anda menggunakan Process Explorer, Anda dapat melihat layanan mana yang sedang dijalankan dalam proses tertentu.


1
Jadi apakah ini kurang lebih sama dengan inetd di linux? Kerangka kerja server tujuan umum, sehingga pengembang dapat menulis layanan tanpa khawatir tentang bagian server dari kode?
Jason Tan

Ide yang sama, Jason, tetapi jelas dengan jangkauan lebih jauh dari inetd yang umumnya hanya menopang tugas jenis webb bukan? Analogi yang bagus, tentu saja cukup dekat untuk uang ...
Rob Moir

20

Banyak komponen pelaksana Windows diimplementasikan sebagai layanan (lihat semua layanan pada pembukaan mesin Anda Control Panel > Administrative Tools > Services). Ini adalah program khusus yang berjalan di latar belakang. Mereka tidak dimulai oleh pengguna login, tetapi saya sistem operasinya sendiri.

Sebagian besar layanan bukan executable yang berdiri sendiri (file EXE), tetapi diimplementasikan di perpustakaan (DLL), yang dapat digunakan dengan menjalankan proses. Seperti namanya, Svchost atau "Host Layanan" adalah executable standar Windows untuk menjalankan DLL ini. Anda dapat menemukan file svchost.exe di %systemroot%\system32direktori.

Jika Anda ingin tahu instance svchost mana yang menjalankan layanan, ketik

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

pada konsol baris perintah (cmd).

Di mesin, tempat saya membuat tangkapan layar, salah satu contoh svchost menjalankan 21 layanan yang berbeda, misalnya. Pengelompokan layanan ini memungkinkan kontrol yang lebih baik dan debugging yang lebih mudah, menurut dokumentasi Microsoft .

teks alternatif

Grup Svchost.exe diidentifikasi dalam kunci registri berikut:

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Kiat (jika Anda menjalankan Windows Vista, Windows 7 atau Windows Server 2008): Anda dapat membuka Task Manager dan klik kanan pada proses svchost.exe tertentu, lalu pilih opsi "Buka Layanan". Ini akan menampilkan tab Layanan , di mana semua layanan yang berjalan di bawah svchost.exeproses yang dipilih akan ditandai.

Ada dokumen yang sangat menarik di Pusat Unduhan Microsoft:

Referensi Layanan Sistem Microsoft Windows Server 2003

Dokumen ini berisi ringkasan semua layanan yang tersedia untuk keluarga sistem operasi Windows Server 2003. Layanan terdaftar dalam urutan abjad dengan nama tampilan. Mengikuti deskripsi dari setiap layanan, tabel mencantumkan informasi utama tentang layanan.

Setiap layanan Windows terdaftar dengan semua perinciannya. Anda belajar, misalnya, bahwa nama file yang dapat dieksekusi dari layanan Terminal Services adalah

 svchost.exe -k termsvcs 

Terima kasih +1 atas informasinya .... Anda dan perwakilan 8000 poin Anda ... sungguh, itu adalah sumber yang bagus untuk dimiliki. Saya menganggap diri saya berpengalaman dalam Win CLI, tetapi tidak menyadari yang satu ini. Terima kasih!
cop1152

7

Svchost adalah kependekan dari "Host Layanan". Itu membuat sebagian besar Layanan di mesin Anda berjalan. Akan ada beberapa Layanan yang meng-host sendiri dalam file .exe mereka sendiri, tetapi sebagian besar Layanan Windows harus di-host di dalam proses svchost.exe. Layanan pada mesin Anda menangani hal-hal penting seperti jaringan, server RpC, audio, log peristiwa dll.

Ketik "services.msc" di Start-> Run untuk melihat Layanan yang telah Anda jalankan di mesin Anda. Jika Anda menganggap seseorang tidak perlu, Anda dapat menghentikan layanan.

Ketik "tasklist / SVC" untuk melihat layanan mana yang dihosting oleh file svchost.exe yang berbeda.


1

Berikut ini adalah PowerShell one-liner yang menampilkan semua layanan yang dihosting dalam proses 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

Versi satu liner yang lebih pendek terlihat seperti ini:

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.