دستور tasklist و taskkill

در سیستم عامل ویندوز هر برنامه ای که در حال اجرا باشد یک Process محسوب میشود، از برنامه های که کاربران آنها را اجرا میکنند (مثل Google Chrome یا Media Player) تا برنامه های که سیستم عامل در پس زمینه از آنها استفاده میکند. (مثل سرویس های ویندوز) همانطور که میدانید هر برنامه ای که در حال اجرا باشد به اندازه نیاز خود از منابع سخت افزاری استفاده میکند، از اینرو برای بررسی برنامه های در حال اجرا و مدیریت منابع سخت افزاری، باید Process برنامه ها را در ابزار Task Manager بررسی کنیم. در این آموزش با دو دستور Tasklist و Taskkill آشنا خواهید شد که دقیقا کارشان همانند ابزار Task Manager است و به شما اجازه میدهند فهرست Process های ویندوز را دریافت کرده و آنها را مدیریت کنید.
ویدیو آموزش دستور tasklist و دستور taskkill
بررسی برنامه های درحال اجرا با دستور Tasklist
دستور Tasklist به شما اجازه میدهد همه برنامه های که در حال اجرا هستند را بررسی کنید، برای استفاده از این دستور کافیست آنرا در خط فرمان ویندوز وارد کنید. برای مثال:
Tasklist

پس از وارد نمودن دستور Tasklist با جدول بلندی از برنامه های درحال اجرا مواجه خواهید شد. در ادامه برخی از بخشهای مهم این جدول را توضیح میدهم:
نام پروسس (Image Name): در این قسمت نام فایل اجرایی برنامه های در حال اجرا را مشاهده میکنید.
مشخصه پروسس (PID): در این قسمت آی دی مرتبط با هر برنامه ی در حال اجرا مشخص شده است.
حافظه مورد استفاده (Mem Usage): در این قسمت حافظه RAM مورد استفاده به کیلوبایت مشخص شده است.
همانطور که در تصویر بالا مشاهده میکنید برنامه csrss.exe با پروسس آی دی 532 حدود 5000 کیلوبایت از حافظه سیستم استفاده میکند.
این ساده ترین روش برای استفاده از دستور Tasklist بود. دستور Tasklist پارامتر های زیادی دارد، برای بررسی پارامترهای این دستور کافیست tasklist را به همراه علامت سوال وارد کنید. برای مثال:
Tasklist /?
توضیح پارامترهای دستور Tasklist
پارامتر | توضیحات |
/S | مشخص نمودن Hostname یا IP سیستم راه دور (Remote System) |
/U | مشخص نمودن نام حساب کاربری در سیستم راه دور |
/P | مشخص نمودن رمز عبور حساب کاربری مشخص شده راه دور |
/M | فهرست گرفتن از ماژول های مشخص شده (exe,dll) اگر پارامتر به تنهای وارد شود همه ماژولهای مرتبط فهرست گرفته خواهند شد. |
/SVC | فهرست کلیه سرویس های که از Process مشخص شده میزبانی میکنند. |
/APPS | فهرست گرفتن از برنامه های App Store ویندوز به همراه PID آنها |
/V | نمایش جزئیات مرتبط با هر Process |
/FI | تعیین فیلتر برای فهرست گیری از Process های مشخص (فیلتر های قابل استفاده: Status – Image Name – PID – Session – SessionName – CPUTime – MemUsage – Username – Services – WindowsTitle – Modules) |
/FO | مشخص نمودن نوع نمایش Process ها (به صورت جدول – فهرست وار – CSV) |
/NH | نمایش داده نشدن Header در فهرست Process ها |
مثال های کاربردی از دستور Tasklist
اجازه دهید دستور Tasklist را در چندین مثال مختلف نشان دهم تا با این دستور بیشتر آشنا شوید. مثلا برای فهرست گیری برنامه های درحال اجرا در یک سیستم راه دور (Remote System) میبایست از پارامتر های زیر در دستور Tasklist استفاده کنیم:
Tasklist /s 192.168.10.126 /u Administrator /p AdminPass Tasklist /s Mohammad-PC /u Administrator /p AdminPass
هر دو دستور بالا به یک صورت عمل میکنند یکی با استفاده از آدرس IP پروسس های سیستم مقصد را دریافت میکند و دیگری با استفاده از نام کامپیوتر (Hostname) اینکار را انجام میدهد.
فهرست گرفتن از پروسس های فعال
برای فهرست گرفتن از پروسس های فعال با نمایش جزئیات هر پروسس باید از دستور Tasklist به همراه پارامترهای /v و /fi استفاده کنید. (فیلتر مرتبط با پروسس های فعال: Status eq running)
Tasklist /v /fi "status eq running"
برنامه های فریز شده (به اصطلاح هنگ کردن)
یکی از مشکلاتی که در نسخه های قدیمی ویندوز بیش از حد اتفاق میافتاد، فریز شدن برنامه ها بود که به اصطلاح به آن هنگ کردن برنامه میگفتند. در واقع برنامه در حالت Not Responding قرار میگرفت، برای فهرست گرفتن از برنامه های که در این وضعیت قرار دارند باید به صورت زیر عمل کنید:
Tasklist /fi "status eq not responding"
فهرست گیری بر اساس ماژول های مورد استفاده
برای فهرست گیری از Process های ویندوز بر اساس ماژول های مورد استفاده، میتوانید از دستور Tasklist به همراه پارامترهای /fi و فیلتر modules استفاده کنید. برای مثال:
Tasklist /fi "modules eq ntdll.dll"
نمایش App های در حال اجرا (Store)
برای فهرست گرفتن از App store ها که در حال اجرا هستند، میتوانید از دستور tasklist به همراه پارامتر /Apps و پارامتر /fi و فیلتر status eq running استفاده کنید. برای مثال:
Tasklist /apps /fi "status eq running"
بستن برنامه های درحال اجرا با دستور Taskkill
تا اینجا یاد گرفتیم با دستور Tasklist فهرست Process های ویندوز را دریافت کنیم، حال برای بستن این Process ها باید از دستور Taskkill استفاده کنیم. بستن برنامه ها با دستور Taskkill بسیار ساده میباشد کافیست دستور Taskkill را به همراه پارامتر /pid و مشخص نمودن PID برنامه مورد نظر وارد نمود. مثلا برای بستن برنامه ای که پروسس آی دی آن 64384 میباشد دستور taskkill به شکل زیر نوشته میشود:
Taskkill /pid 64384
پارامترهای دستور Taskkill
به طور کلی روشهای متفاوتی برای بستن برنامه ها با دستور Taskkill وجود دارد، در ادامه برای یادگیری این روشها، فهرست پارامترهای کاربردی دستور Taskkill را به شما توضیح خواهم داد:
پارامتر | توضیحات |
/S | مشخص نمودن Hostname یا IP سیستم راه دور (Remote System) |
/U | مشخص نمودن نام حساب کاربری در سیستم راه دور |
/P | مشخص نمودن رمز عبور حساب کاربری مشخص شده راه دور |
/FI | تعیین فیلتر برای فهرست گیری از Process های مشخص (فیلتر های قابل استفاده: Status – Image Name – PID – Session – SessionName – CPUTime – MemUsage – Username – Services – WindowsTitle – Modules) |
/PID | مشخص کردن PID برای بستن پروسس |
/IM | مشخص نمودن نام فایل اجرایی برنامه برای بستن آن با Taskkill |
/T | بستن پروسس مشخص شده با تمام پروسس های زیر مجموع آن |
/F | بستن اجباری پروسس ها (پروسس های که با زبان خوش بسته نمیشن) |
مثال های کاربردی از دستور Taskkill
در ادامه همراه با نووا بلاگ باشید تا چند مثال کاربردی از دستور taskkill را با هم بررسی کنیم، برای بستن پروسس ها با استفاده از نام فایل اجرایی آنها دستور Taskkill به شکل زیر نوشته میشود:
Taskkill /im explorer.exe
مثلا در دستور بالا مشخص شده محیط Explorer ویندوز باید متوقف شود. توجه کنید برای مشخص نمودن نام فایل اجرایی پروسس باید نام را به صورت کامل و به همراه پسوند آن وارد کنید.
بستن اجباری برنامه های که فریز شده اند (هنگ)
برای بستن برنامه های که فریز شده اند یا در وضعیت Not Responding قرار دارند، باید دستور Taskkill را به صورت زیر وارد کنید:
Taskkill /f /fi "status eq not responding"
همانطور که متوجه شدید برای فهرست گیری از Process های در حال اجرا، باید از دستور Tasklist استفاده کنید و برای بستن این Process ها از دستور Taskkill استفاده کنید.
اگر سوال یا انتقادی نسبت به آموزش دستور tasklist و taskkill دارید نووا بلاگ را از محبت خود محروم نکنید.
23 پاسخ به “دستور tasklist و taskkill”
ببخشید میشه بگید اون sample که آخر این اومده
Taskkill.exe /f (forcefully) /im (image name) sample.exe
رو توضیح ندادید
جزو دستوره؟
کارش چیه؟
چرای برای مثالِ
Taskkill.exe /f /im explorer.exe
explorer اومد؟
exe. آخرش واسه چیه؟
به نظرم اگه این توضیحاتو هم اضاف کنید خیلی بهتر میشه
مرسی خسته نباشید
این آموزش کمی قدیمه و هنوز هیچ ویرایشی رو انجام نشده
Sample.exe به منظور یک دستور نمونه یا مثال استفاده شده
explorer.exe فایل اجرای محیط گرافیکی ویندوز که به عنوان مثال ازش استفاده کردم
چشم
این بخش روهم خوب متوجه نشدم:
“و پارامتر IM برای مشخص کردن Process می باشد”
چیشو مشخص میکنه؟
ببخشید که سوالات زیاده ولی من تا یه چیزو کامل یادنگیرم بیخیال نمیشم
🙂
ممنون
منظورم همون مشخص کردن Process هست که قرار توسط دستور Taskkill بسته بشه
بعد از پارامتر -IM باید اسم Process رو بدی که میخوای توسط دستور Taskkill بسته شه
خواهش میکنم – باعث افتخار که بتونم کمک کنم.
سلام . خیلی ممنون از مطالب مفیدتون
اگه میشه pdf این مقاله رو هم قرار بدید که بصورت آفلاین هم بهشتون دسترسی داشته باشم.
سلام، خواهش میکنم
چشم ان شا الله در سایت قرار میگیره
داداش ازت ممنونم واقعا مفید بود
سلام خسته نباشید. ممنون از مطب مفیدی که گذاشتید.
من یک سوال در همین ارتباط داشتم که چند هفته است برای یک پروژه ویژوال وقتم رو گرفته و خیلی گیر رفع این مشکل هستم.
اگر با این دستور explorer را ببندیم آیا دستور خط فرمانی دیگری هست که مجددا بتونیم explorer را باز کنیم.
یعنی به جای باز کردن پنجره task manager و اجرای گزینه new task آیا میشه از طریق خط فرمان اینکار را انجام داد؟
اگر بتونید برای رفع این مشکل به من کمک کنید خیلی ممنون میشم.
سلام جناب طاهری
خیلی ساده خود دستور explorer.exe رو در خط فرمان تایپ کنید تا مجددا محیط explorer فعال بشه
موفق باشید
سلام
ممنون از موضوعات مفید تون
تشکر
سلام ببخشید اگه میخوایم برنامه svchost رو ببندیم چیکار کنیم؟
چون تو ویندوز svchost زیاد هست
نمیشه ادرس مربوط به پوشه برنامه رو بدیم؟
به جز pid راه دیگه هم داره
سلام
برنامه svchost برای خود ویندوز و سرویس ها و برنامه های زیادی وابسته به این برنامه هستند، شما نمیتونید این برنامه رو متوقف کنید.
موفق باشید 🙂
سلام.
من برنامه ای دارم که کاربران شبکه در یوزر خودشون کار می کنن. حالا اگر اون برنامه در یوزر قبلی در کلاینت باز باشه و نفر بعدی برنامه رو نبنده و سوییچ یوزر کنه با پیغامی مواجه میشه که اجرای برنامه رو نگه میداره و اون هم به خاطر بازبودن برنامه در یوزر قبلی ست.چطوری میشه این دستور رو نوشت تا ابتدا برنامه در یوزرهای دیگه اگه باز بود بسته شه و سپس مجدد برنامه اجرا شه.با تشکر
سلام، دستور رو که اجرا میکنم به محض باز شدن بسته میشه. لطفا راهنمایی کنید، مطالب بسیار کاربردی بود.
سپاس
سلام
ابتدا وارد محیط خط فرمان ویندوز بشید بعد دستورات رو اجرا کنید.
با سلام و تشکر از آموزش های مفید شما
اگر بخوام تو یه بچ اسکریپت بنویسیم اگر برنامه X تو tasklist نبود اجراش کن چطور میتونم؟ممنون
سلام ممنون توضیحات تکمیل بود فقط یک مورد که داخل هیچ سایتی اشاره نشده و هر مدلی تست میکنم کار نمیکنه این هستش که :
بنده روی یک سیستم و یک ویندوز چندین یوزر ویندوز ایجاد کردم که همشون به صورت هم زمان فعال هستند و داخل همشون یک نرم افزار باز هستش و کار میکنه ، گاهی وقت ها نیاز میشه که داخل یکی از این یوزرهای ویندوز ، اون نرم افزار بسته بشه ولی از اونجایی که هنگ میکنه ، باید به زور بستش …
حالا با دستوری زیر :
Taskkill /im explorer.exe /f
برنامه بسته میشه ، اما داخل تمام یوزرهای ویندوز بسته میشه !
که نیاز من این هستش که فقط داخل یک یوزر بسته بشه .
اگر ممکنه بفرمایید دستور رو به چه شکلی باید بزنم که فقط داخل یک یوزر خاص بسته بشه
با تشکر
سلام اگر taskkill را بزنیم و پسوند نزاریم چه اتفاقی میافتد؟
سلام
باید نام پروسس جاری رو به صورت کامل وارد کنید وگرنه برنامه رو نمیتونه پیدا کنه
سلام، آموزش خیلی خوب و جالبی بود، سپاس 🙏
من این دستور را داخل شبکه اجرا کردم:
۱- بین دو سیستم ویندوز ۱۰ ویا دو سیستم ویندوز ۱۱ اجرا میشه مشکلی وجود ندارد.
۲- از پشت سیستم ویندوز ۱۱ هم میشه از سیستم ویندوز ۱۰ تسکلیست گرفت.
۳- اما از پشت سیستم ویندوز ۱۰ نمیشه از سیستم ویندوز ۱۱ تسکلیست گرفت ( با اینکه یوزر و پسورد را درست میزنم و فایروالها هم آف هستند و همچنین در regedit مقدار rpc را به ۱ تغییر دادم اما درست نشد). پیغام یوزر و پسورد میدهد:
Error: The user name or password is incorrect.
بنظر شما مشکل از کجاست؟!
سلام ممنونم از مخبت تون
تا به حال با چنین مشکلی برخورد نکردم، تجربشو ندارم. تنها یادم میاد سالها قبل RPC رو از طریق Group Policy (اگر اشتباه نکنم) فعال میکردم.
سیستم عامل ویندوز همینطور که ویژگیهای خوب زیادی داره خطاها باگ های زیادی هم داره، ممکنه همین خطارو در همین شرایط روی دوتا سیستم ویندوز ۱۰ و ۱۱ دیگه دریافت نکنی
احتمالا مثل ریموت دسکتاپ که موقع فعال کردنش اجازه میدیم که قدیمیها هم بتونن ریمون بزنن… این مشکل هم قابل حل شدنه ، باید داخل گروپ پالیسی یا رجیستری این اجازه رو به سیستم بدیم که نسخههای قدیمی ویندوز هم بتونن از سیستم با ورژن بالاتر تسکلیست بگیرند.
(درمورد دستور msg هم ویدئو بسازید شاید برای مخاطبان جالب باشه (تو شبکه کاربردی)).
سلام محمد
مرسی از توضیحات و ممنونم از پیشنهاد، اگر آدرسهای مرتبط با group policy و رجیستری رو هم اضافه میکردی برای افراد بعدی کمک کننده بود.