اگر تا به حال به تسک منیجر ویندوز خود نگاهی انداخته باشید، ممکن است با دیدن تعداد زیاد پروسههای در حال اجرای svchost.exe تعجب کرده باشید. شما نمیتوانید آنها را متوقف(kill) کنید و البته نمیتوانید آنها را استارت کنید. خب، این svchost.exe وقعا چیست؟
پروسهی svchost.exe چیست؟
پاسخ این سوال طبق گفتهی مایکروسافت این است:
«svchost.exe یک پروسهی عمومی میزبان(هاست) است برای سرویسهایی که از طریق dllها اجرا میشوند.»
اما خب، این تعریف کمک چندانی به ما نمیکند. چندی قبل، مایکروسافت شروع به تغییر بیشتر عملکردهای ویندوز برپایهی سرویسهای داخلی خود ویندوز(که از طریق فایلهای exe اجرا میشدند) نمود که به جای این از فایلهای DLL استفاده کنند. از دید برنامهنویسی، این کار باعث میشود تا کد ما قابلیت استفاده چندباره را داشته باشد و همچنین به روز باشد. مشکل این است که نمیتوان یک فایل DLL را همانطور که یک فایل اجرایی را باز میکنیم، باز کرد. درعوض، یک پوسته که از طریق فایلهای اجرایی بارگذاری میشود، مسئول میزبانی(هاست) این سرویسهای DLL است. و این طور شد که پروسهی سرویس هاست (svchost) متولدشد.
خب حالا چرا تعداد زیادی پروسه svchost در حال اجراست؟
اگر تا به حال نگاهی به قسمت سرویسها در کنترل پنل انداخته باشید، احتمالا متوجه شدهاید که ویندوز به سرویسهای زیادی نیاز دارد. اگر تمام این سرویسها بخواهند از یک svchost استفاده کند، اشکال در یکی از سرویسها میتواند به صورت بالقوه باعث از کار افتادن کل ویندوز شود. به همین خاطر این svchost ها جداشدهاند و سرویسها از svchost های مختلف استفاده میکنند.
سرویسهایی که به نوعی با یکدیگر ارتباط دارند در گروههای منطقی سازماندهی شدهاند و برای هر یک از این گروهها یک نمونه(instance) از svchost اجرا میشود. مثلا یک پروسهی svchost از سه سرویس مرتبط با فایروال میزبانی میکند. یا یک پروسه svchost دیگر که تمام سرویسهای مربوط به رابط کاربری را میزبانی میکند و به همین ترتیب. به عنوان مثالی دیگر، در عکس پایین میبینید که یک svchost چند سرویس مرتبط با شبکه را اجرا میکند و دیگری سرویسهای مرتبط با RPC را.
با همه این تفاصیل آیا نیاز هست تا من کاری انجام دهم؟
اگر صادقانه بخواهیم بگوییم، نه خیلی. در زمان ویندوز xp وقتی کامپیوترها منابع بسیار کمتری داشتند و سیستمعاملها بهینه نبودند، معمولا متوقف کردن سرویسهای غیرضروری پیشنهاد میشد.اما امروزه غیرفعال کردن سرویسها را دیگر توصیه نمیکنیم. کامپیوترهای مدرن از حافظهی بالا و پردازشگرهای پر قدرت و همچنین سیستمعاملهای مدرنی برخوردارند که خود، سرویسها را مدیریت میکنند و بنابراین متوقف کردن سرویسها تاثیر چندانی نخواهد داشت.
حال اگر متوجه شوید که یک نمونه svchost با بالا بردن مصرف سیپییو یا رم در حال ایجاد مشکل است، میتوانید سرویس مشخصی را که در ایجاد مشکل دخیل است شناسایی کنید. این باعث میشود تا متوجه شوید مشکل از کجاست تا مراحل عیبیابی را آغاز کنید. برای این که بدانیم سرویس مورد نظر توسط کدام نمونه از svchost میزبانی میشود چند راه وجود دارد. میتوان از تسک منیجر و نرمافزار دیگری به نام Proccess Explorer استفاده کرد.
بررسی سرویسهای مرتبط با تسکمنیجر
اگر از ویندوز ۸ یا ۱۰ استفاده میکنید، پروسهها در تب Proccesses تسکمنیجر با نام کامل نمایش داده میشوند.اگر پروسهای از پروسههای دیگری میزبانی کند، به سادگی میتوان این پورسهها را با باز کردن پروسه میزبان مشاهده کرد. این باعث می شود تا به راحتی تشخیص دهیم تا کدام پروسه به یک svchost مشخص تعلق دارد.
با کلیک راست بر روی هر سرویس، میتوان آن را متوقف کرد، در سرویسهای کنترلپنل مشاهده کرد یا حتا برای بهدست آوردن اطلاعاتی درباره آن به صورت آنلاین جستوجو نمود.
اگر از ویندوز ۷ استفاده میکنید، این موضوع متفاوتتر خواهد بود.تسکمنیجر ویندوز ۷ پروسهها را مثل بالا گروهبندی نمیکند و نام کامل پروسهها را نشان نمیدهد و فقط تمام نمونههای در حال اجرای svchost را نمایش میدهد. برای مشخص کردن زیرپروسههای svchost باید قدری بیشتر جستوجو کنید.
در تب Proccesses تسکمنیجر ویندوز ۷، روی یک svchost کلیک راست کنید و گزینهی Go to Services را اتخاب نمایید.
این کار باعث میشود تا به تب Services رفته و تمام سرویسهایی که از svchost مشخص شما استفاده میکنند به صورت انتخاب شده دربیایند.
به این صورت میتوانید نام کامل سرویسها را در ستون Description مشاهده نموده و اگر سرویس را نیاز ندارید غیرفعال کنید و یا روال عیبیابی را شروع نمایید.
بررسی سرویس های مرتبط با Proccess Explorer
مایکروسافت علاوه بر تسکمنیجر، ابزار پیشرفتهی دیگری را در بسته Systinternals برای کار با پروسهها فراهم نموده. کافیست Proccess Explorer را دانلود و اجرا کنید. این ابزار پرتابل است و نیاز به نصب آن نیست. پراسس اکسپلورر تمام ویژگیهای پیشرفته برای مدیریت پروسهها را دارد.
برای هدفی که ما در اینجا داریم، پراسس اکسپلورر همان گروهبندی پروسهها را زیر یک svchost انجام میدهد. آنها با نام فایل لیست شدهاند ولی میتوان نام کامل را نیز در ستون Description مشاهده کرد. همچنین با بردن اشارهگر موس روی هر نمونه از svchost یک پاپآپ باز میشود و تمام زیرپروسهها را نمایش میدهد.
آیا این پروسه میتواند یک ویروس باشد؟
این پروسه، خودش یکی از اجزای ویندوز هستند. البته ممکن است یک ویروس جایگزین این پروسه شده باشد؛ اما احتمالش کم است. برای اطمینان میتوانید روی svchost در تسکمنیجر کلیک راست کرده و گزینهی open file location را انتخاب نمایید. این کار باعث میشود محل نگهداری فایل پروسه مورد نظر در کامپیوتر باز شود. اگر پنجرهای که باز میشود در مسیر C:\Windows\System32 باشد، تقریبا میتوانید مطمئن باشید که ویروس نیست. برای این که ۱۰۰ درصد هم اطمینان حاصل کنید، میتوانید از آنتی ویروس کسپرسکی برای اسکن فایل مورد نظر استفاده نمایید.
- برچسب ها:
- ویندوز
سلام.یه مشکلی دارم اینکه وقتی کامپیوتر رو به اینترنت وصل میکنم بسیار زیاد هنگ میکنه قبلا اینجوری نبود تازگیا این مشکل درست شده.به دنبال مشکل میگردم و میبینم که همین فایل svchost به طرز عجیبی داره از ۱۰۰ درصد ظرفیت رم استفاده میکنه و حتی موقعی که اینترنت رو هم قطع میکنم باز مشکل حل نمیشه.خواهش میکنم راهنماییم کنید.هیچ وقت تاحالا با همچین مشکلی رو برو نشده بودم.این راهایی رو که بالا گفته بودین انجام دادم.متاسفانه برنامه proccess explorer هم مشکل داره و باز نمیشه.ویندوز سیستمم ۷ هست.
سلام امیر عزیز.
آیا قبل از این که سیستم رو به اینترنت متصل کنید این مشکل دیده نمیشه و به محض اتصال مصرف رم بالا میره؟
مطلب ذیل عنوان «آیا این پروسه میتواند یک ویروس باشد؟» رو ماطلعه بفرمایید. اگر این طور هست ممکنه سیستم شما آلوده باشه. بهتر هست یک آنتی ویروس اورجیتال بر روی سیستم نصب کنید تا از این موضوع مطمئن شوید.
بعد از اسکن در صورتی که مشکل رفع نشده بود اطلاع بدید تا موارد دیگر هم بررسی بشه.
موفق باشید.
من وقتی لپتاب رو اجرا میکنم تقریبا بعد از ۱ ساعت کار ۱۰۰ درصدر سیپیو و رم اشغال میشه در حالی که هیچ کار خاصی انجام ندادم و مجبور میشم ریستارت کنم تا مشکل حل بشه همه چیز هایی که گفتید هم چک کردم چیز خاصی نبود سیستم هم ویروسی نیست چند بار هم تست کردم
سلام امیررضای عزیز،
گاهی اوقات هم هست که ممکنه یکی از درایورهایی که رو سیستمتون نصب شده باشه یه مشکلی داشته باشه و باعث بشه پردازنده درگیر شه. پیشنهاد می کنیم کلیه درایورهای سیستمتون رو برزرسانی کنید.
همچنین حتما یک آنتی ویروس معتبر مثل کسپرسکی رو سیستمتون نصب کنید. آنتی ویروس رو میتونید از فروشگاه ابربازار ما تهیه کنید.
اگر باز هم رفع نشد میتونید تو پرتال ما ثبت نام کنید و یک تیکت ثبت کنید تا موردتون بیشتر بررسی بشه.
موفق باشید.