● Svchost.exe چیست؟ بر اساس آنچه که در سایت Microsoft بیان شده است Svchost.exe نام عمومی پردازش هایی است که سرویس هایی را از dynamic-link library DLL ها، به اجرا در می آورند. چندی پیش Microsoftهمه توابع داخلی سیستم خود را از فایل های exe .به فایل های .dll منتقل کرد.از دیدگاه برنامه نویسی چنین رویکردی به دلیل اینکه امکان استفاده مجدد از یک تابع را از طریق فایل های .dll فراهم می کند، قابل توجه است، اما مشکلی که این رویکرد پدید می آورد، حذف امکان اجرای مستقیم یک فایل .dll از طریق Windows است. یک فایل .dll جهت اجرا شدن نیاز به یک برنامه اجرایی در حال اجرا دارد. بدین گونه پردازش های Svchost.exe متولد شدند. چرا تعداد زیادی پردازش Svchost.exe در حال اجرا ست؟ فایل Svchost.exe در مسیر %SystemRoot%System۳۲ قرار دارد. در زمان بالا آمدن سیستم، Svchost.exe بخش سرویس های رجیستری رابرای تهیه لیستی از سرویس های اجرایی بررسی می کند. چندین پردازش Svchost.exe می تواند به صورت همزمان در حال اجرا باشد. چنانچه تابه حال به بخش سرویس های موجود در کنترل پنل سر زده اید، تعداد زیادی سرویس را مشاهده کرده اید که سیستم عامل Windows به آنها نیازمند است. اگر برای هر کدام از سرویس ها یک پردازش Svchost.exe در نظر گرفته شود، بروز اشکال در هر یک از آنها به از کار افتادگی کل سیستم ختم می شد. بنابراین سرویس ها گروه بندی شدند و برای هر گروه از آنها یک پردازش Svchost.exe ایجاد شد. برای مثال یک پردازشSvchost.exe می تواند سه سرویس مرتبط با Firewall رااجراکند. گروه هایSvchost.exeدرذیلاین کلید رجیستری شناسایی می شوند: HKEY_LOCAL_MACHINESoftware MicrosoftWindow sNTCurrentVersion Svchost شما می توانید سرویس هایی که مورد نیاز نیستند، غیر فعال و یا متوقف کنید. به علاوه چنانچه استفاده بیش از حد از پردازنده توسط یکی از پردازش های Svchost.exe مشاهد شد، می توانید سرویس هایی که توسط این Svchost.exe خاص اجرا می شوند، متوقف کرده و مجدداً بارگذاری کنید. به این منظور باید مشخص شود که کدام سرویس توسط کدام پردازش Svchost.exe اجرا می شود. برای دیدن پردازش های فعال سیستم می توانید با استفاده از کلید های Ctrl+Alt+Delete پنجره Task Manager را ظاهر کنید و در قسمت Processes، همه پردازش های فعال سیستم را ببینید.
برای تعیین اینکه کدام سرویس توسط کدام یک از پردازش های Svchost.exe در حال اجراست، روش های مختلفی وجود دارد. برخی از روش ها فقط در Windows Vista قابل اجرا بوده و برخی دیگر در Windows XP نیز قابل اجرا می باشد. بررسی سرویس ها از طریق Command Line (Vista و XP) برای دیدن سرویس هایی که توسط یک پردازش خاص Svchost.exe فعال هستند، می توان از دستورTasklist استفاده کرد. در نوار وظیفه بر روی Start کلیک کرده و سپس بر روی Run کلیک کنید.در برنامه Run تایپ کنید CMD و کلید Enter را فشار دهید. در پنجره Command Line دستور Tasklist /SVC را تایپ کنید و کلید Enter را فشار دهید. لیستی از همه پردازش های فعال سیستم نمایش داده خواهد شد. سوییچ /SVC سرویس های فعال در هر پردازش را نمایش می دهد. بررسی سرویس ها در Task Manager(Vista) در Windows Vista امکان دسترسی به سرویس های هر پردازش از طریق Task Manager وجود دارد. بر روی پردازش مربوطه کلیک راست کرده و سپس گزینه «Go To Service(s)» را انتخاب کنید. با انتخاب این گزینه Task Manager شما را به بخش Services منتقل می کند که در آن سرویس های مربوط به پردازش Svchost.exe انتخاب شده، با رنگ پس زمینه متفاوت از بقیه سرویس ها به نمایش در آمده است. مزیتی که این روش نسبت به استفاده از روش Command Line دارد نمایش کامل نام سرویس ها در ستون Description می باشد. بنابراین با مشاهده نام کامل هر سرویس می توانید تصمیم بگیرید که در صورت لزوم سرویس مربوطه را متوقف کنید. بررسی سرویس ها با استفاده ازExplorer Process XPوVista Process Explorer برنامه ای است که توسط شرکت Microsoft و Sysinternals عرضه شده است. با استفاده از این برنامه می توان به سادگی سرویس هایی را که توسط یک پردازش خاص اجرا می شود، مشاهده کرد.حجم این برنامه تنها ۱.۶MB است و از طریق آدرس زیر قابل دریافت است: download.sysinternals.com/Files/ProcessExplorer.zip پس از نصب این برنامه کافی است اشاره گر موس را بر روی هر یک از پردازش ها قرار دهید. لیستی از سرویس هایی که توسط این پردازش اجرا می شود به شما نشان داده خواهد شد. با کلیک کردن بر روی هر پردازش پنجره ویژگی های آن پردازش نمایش داده می شود. با انتخاب قسمت مربوط به سرویس ها می توان سرویس های مربوط به هر پردازش را دید و در صورت تمایل سرویس خاصی را غیر فعال کرد. غیر فعال کردن سرویس هادر کنترل پنل وارد پوشه Administrative Tools شده و بر روی بخش Services کلیک کنید، یا با کلیک بر روی Start برنامه Run را اجرا کرده و عبارت services.msc را تایپ کنید و کلید Enter را فشار دهید. سرویسی را که تمایل دارید متوقف کنید در لیست سرویس ها پیدا و بر روی آن کلیک و یا کلیک راست کرده و گزینه Properties را انتخاب کنید.پنجره مربوط به ویژگی های سرویس باز خواهد شد. در این پنجره گزینه Disabled را در Type Startup انتخاب کنید و سپس بر روی دگمه Stop کلیک کنید تا بلافاصله اجرای این سرویس متوقف شود. همچنین با استفاده از Command Prompt نیز می توان سرویس های سیستم را غیر فعال کنید. برای این منظور از دستوری به این شکل استفاده می شود: sc config trkwks start= disabled در این دستور trkwks نام سرویسی است که درخواست غیر فعال کردن آن به سیستم داده شده است. در پایان لازم به ذکر است که فایل Svchost.exe تنهادرمسیر%SystemRoot%System۳۲ قرار دارد و هر فایل دیگری با عنوان Svchost.exe که در مسیر دیگری قرار داشت، برنامه ای مخرب است که سیستم کاربر را تهدید می کند.