فایل svchost.exe چیست و چرا چند نسخه از آن همیشه در حال اجراست؟!
اگر به تَسکمنیِجر ویندوز نگاهی بیاندازید چشم شما به جمال فایل svchost.exe روشن خواهد شد، در این قسمت قصد داریم ببینیم فایل svchost.exe چیست و چرا همیشه چند نسخه از این فایل در حال اجراست؟
کاربرانی که علاقه دارند به قسمتهای مختلف ویندوز سرک بکشند حتما تاکنون به فایل svchost.exe برخورد کردهاند. این فایل را نمیتوان متوقف کرد و شروع شدن پروسه این فایل نیز بدست کاربر نیست. از طرف دیگر در بیشتر مواقع شاهد چند نسخه مختلف از این فایل هستیم که همزمان در حال اجراست.
به همین دلیل در این قسمت به عملکرد این سرویس خواهیم پرداخت و نکات جالبی را از فایل svchost.exe با شما در میان خواهیم گذاشت.
در ابتدا بهتر است ببینیم فایل svchost.exe چه نوع سرویسی است؟
مایکروسافت در خصوص عملکرد فایل svchost.exe مدعی است این فایل یک generic host process است که سرویسهای لینکهای دینامیک کتابخانههای ویندوز را راهاندازی میکند.
با این حساب از روی توضیح پیچیده مایکروسافت نمیتوان به عملکرد دقیق این فایل پیبرد. ازطرف دیگر مدتی پیش مایکروسافت قالب سرویسهای مختلف را در ویندوز از EXE به فایلهای DLL تغییر داد.
جالب است بدانید به لحاظ برنامه نویسی این کار باعث میشود تا کدها به دفعات بیشتری قابل استفاده باشند و از طرف دیگر آپدیت کردن آنها نیز سادهتر باشد. تا این جای کار تصمیم جدید مایکروسافت به خوبی پیش رفت اما مشکل زمانی ایجاد شد که فایلهای DLL به صورت مستقیم همانند فایلهای اجرایی (EXE) قابل اجرا شدن نبودند.
این امر باعث شد تا یک شِل که توسط فایل اجرایی بارگذاری شده بود برای میزبانی سرویسهای داخل فایل DLL راهاندازی شود. تمامی این موارد دست به دست هم دادند تا در نهایت شاهد تولد فایل svchost.exe باشیم.
چرا تعداد زیادی از سرویس Host Processes در ویندوز اجرا شده است؟
اگر در کنترل پنل ویندوز نگاهی به قسمت سرویسها داشته باشید حتما متوجه شدهاید که ویندوز برای اجرا شدن نیازمند راهاندازی سرویسهای زیادی است. اگر تمامی سرویسها در داخل یک Service Host process اجرا شود، در صورت خراب شدن یک سرویس، کل ویندوز با مشکل روبرو میشود. به همین دلیل سرویسها با توجه به عملکردی که دارند جداگانه دستهبندی شده است.
برای روشن شدن موضوع اجازه دهید مثالی بزنیم. یک Service Host process ممکن است از سه سرویس تشکیل شده باشد که کنترلهای لازم برای فایروال را انجام میدهند. در صورتی که سرویس دیگر Service Host process ممکن است شامل سرویسهایی برای رابط کاربری ویندوز را دارا باشد.
برای نمونه در تصویر زیر میتوانید مشاهده کنید که در یک سرویس Service Host process چندین سرویس برای تعامل با شبکه تعبیه شده است در حالکه یک سرویس دیگر Service Host process دارای سرویسهای دیگری برای ریموت ویندوز است.
باید اعتراف کرد که سردرگم شدن در تعاریف بالا کاملا طبیعی است و نیازی هم وجود ندارد که با این مفاهیم بیشتر از این درگیر باشید.
در ویندوز ایکسپی و نسخههای پیش از آن زمانی که کامپیوتر به لحاظ منابع سختافزاری با محدودیت روبرو میشد و سیستمعامل ویندوز عملکرد خوبی نداشت، پیشنهاد میشد سرویسهای غیرضروری را برای عملکرد بهتر ویندوز و آزاد شدن منابع سیستمی متوقف کنید.
این روزها داستان فرق کرده است و دیگر توصیه نمیشود که سرویسهای ویندوز را متوقف کنید. از طرف دیگر خوشبختانه سختافزارها نیز پیشرفت زیادی داشتهاند و یک کامپیوتر مدرن و امروزی دارای رم و پردازنده قوی است.
این نکته را نیز باید در نظر داشت که سرویسهای ویندوز نیز به خوبی در نسخههای جدید ویندوز مدیریت میشوند و متوقف کردن یک سرویس که احساس میکنید نیازی به آن ندارید تاثیر چندانی بر عملکرد کلی ویندوز ندارد.
در این بین اگر احساس کردید یک سرویس مخصوص از Service Host یا سرویسهای وابسته به آن برای شما درسر درست کرده و میزان زیادی از فضای رم و پردازنده را اشغال کرده است به این موضوع شک کرده و سرویسهای اجرا شده را بررسی کنید. در حین بررسی سرویسها ممکن است دلیل این مشکل را پیدا کنید.
چند راه مختلف برای مشخص کردن این که سرویسهای بخصوصی توسط یک Service Host مشخص میزبانی میشوند وجود دارد. سادهترین راه باز کردن تَسک منیجِر ویندوز است.
بررسی سرویسها در تسک منیجر
اگر کاربر ویندوز ۸ یا ۱۰ هستید کافی است تا در تسک منیجر، تب Processes را انتخاب کنید. در این قسمت میتوانید پروسسهای مختلف را با نام کامل آنها مشاهده کنید. اگر یک پروسس نقش میزبان را برای چندین سرویس ایجاد میکند میتوانید با کلیک کردن بر روی این پروسس، سرویسهای زیر مجموعه آنرا مشاهده کنید. این کار فرآیند تشخیص سرویسهایی که در یک Service Host process قرار گفتهاند را آسان میکند.
اگر هم در این قسمت بر روی سرویس به خصوصی راست کلیک کنید میتوانید این سرویس را متوقف کنید.
لازم به ذکر است که تسک منیجر در ویندوز ۷ با توضیحی که دادیم مقداری تفاوت دارد. تسک منیجر ویندوز ۷ پروسسها را در یک گروه به سبکی که به آن اشاره کردیم قرار نمیدهد. تسک منیجر ویندوز ۷ تنها تمامی نسخههای اجرا شده از سرویس svchost.exe را نمایش میدهد. برای اینکار باید شخصا به دنبال سرویسهای اجرا شده مربوط به فایل svchost.exe بگردید.
اگر کاربر ویندوز ۷ هستید بر روی تب Processes در تسک منیجر کلیک کرده و بر روی یک پروسس svchost.exe راست کلیک کنید سپس گزینه Go to Services را انتخاب کنید.
این کار باعث میشود به تب Services هدایت شوید. در این قسمت میتوانید تمامی سرویسهایی اجرا شده فایل svchost.exe را مشاهده کنید.
در ستون Description نیز نام کامل سرویس مورد نظر نمایش داده میشود. در این جا میتوانید سرویس را غیرفعال کنید.
بررسی سرویسها با استفاده از ابزار Process Explorer
مایکروسافت برای کنترل و مدیریت بهتر سرویسهای ویندوز ابزار بسیار کارآمدی را نیز با نام Process Explorer در اختیار کاربران قرار داده است. این ابزار به صورت پیش فرض در ویندوز ۱۰ وجود ندارد و باید آن را دانلود کنید. ابزار Process Explorer امکانات ویژهای را برای مدیریت سرویسها در اختیار کابران حرفهای قرار میدهد.
ابزار Process Explorer سرویسهای مرتبط با فایل svchost.exe را در یک گروه نشان میدهد. این سرویسها بر اساس نام فایلی که اجرا شده است فهرست شدهاند، نام کامل این سرویسها را نیز میتوانید در ستون Description مشاهده کنید. اگر هم ماوس را بر روی یکی از پروسسهای فایل svchost.exe نگه دارید سرویسهای مربوط به این پروسس را می توانید مشاهده کنید. جالب اینجاست که حتی سرویسهایی که اجرا نشدهاند نیز از این طریق نمایش داده میشود.
آیا این پروسس میتواند حاوی ویروس باشد؟
همانگونه که در ابتدا هم اشاره کردیم این پروسس یکی از اجزای اصلی ویندوز است. البته امکان این وجود دارد که یک ویروس بتواند خود را با یک Service Host اصلی جایگزین کنید و فرآیند اجرایی مخصوص به خود را داشته باشد. لازم به ذکر است که این کار خیلی بعید به نظر میرسد.
اگر هم میخواهید از عملکرد فایل svchost.exe اطمینان خاطر حاصل کنید میتوانید فایلهای زیر مجموعه این پروسس را بررسی کنید. برای این کار در تسک منیجر بر روی یکی از پروسسهای Service Host راست کلید کرده و گزینه Open File Location را انتخاب کنید.
اگر فایل مورد نظر در شاخه ویندوز و پوشه System 32 قرار داشت احتمال زیادی وجود دارد که این فایل ویروس نباشد.
در مجموع باید گفت از قدیم گفتهاند کار از محکم کاری عیب نمیکند و برای اطمینان خاطر هم که شده بهتر است در کنار روش بالا با استفاده از یک ویروسیاب مطمئن و آپدیت کامپیوتر خود را ویروسیابی کنید.
سلام
من الان رفتم این svchost.exe تو پوشه system 32 نبود یعنی ویروس افتاده ؟؟
قطعا هست. فقط احتمالا مخفی سیستمی باشه.
عالی بود ممنون
با سلام
گرامی،این فایل svchost ویندوز 10 ما هر روز داره حجم بالا دیتا دانلود می کنه و سرعت نت رو هم می گیره!
شما راهکاری داری برای جلوگیری این کار؟ یا حتما باید آپدیت بشه؟
این فایل همون دانلود کننده آپدیت های ویندوز هست. توصیه می کنیم آپدیت ها رو قطع نکنید چون شامل بسته های امنیتی مهم هم هست
بسیار عالی
یادمه تو ویندوز xp بعد از یه مدت استفاده همین svchost تمام رم و سی پی یو رو مصرف میکرد و این نشون میداد که رو سیستم ویروس افتاده و وقت تعویض ویندوزه.