آموزش خط فرمان ویندوز (CMD)

کتاب آموزش Batch Script

کاربر حرفه ای ویندوز (سیزن اول)

دستور tasklist و taskkill

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

بررسی برنامه های درحال اجرا با دستور Tasklist

دستور 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 بستن اجباری پروسس ها (پروسس های که با زبان خوش بسته نمیشن)

 بستن برنامه ها با cmd

مثال های کاربردی از دستور Taskkill

در ادامه همراه با تی ام ال منیجر باشید تا چند مثال کاربردی از دستور taskkill را با هم بررسی کنیم، برای بستن پروسس ها با استفاده از نام فایل اجرایی آنها دستور Taskkill به شکل زیر نوشته میشود:

Taskkill /im explorer.exe

مثلا در دستور بالا مشخص شده محیط Explorer ویندوز باید متوقف شود. توجه کنید برای مشخص نمودن نام فایل اجرایی پروسس باید نام را به صورت کامل و به همراه پسوند آن وارد کنید.

بستن اجباری برنامه های که فریز شده اند (هنگ)

برای بستن برنامه های که فریز شده اند یا در وضعیت Not Responding قرار دارند، باید دستور Taskkill را به صورت زیر وارد کنید:

Taskkill /f /fi "status eq not responding"

همانطور که متوجه شدید برای فهرست گیری از Process های در حال اجرا، باید از دستور Tasklist استفاده کنید و برای بستن این Process ها از دستور Taskkill استفاده کنید.

اگر سوال یا انتقادی نسبت به آموزش دستور tasklist و taskkill دارید تی ام ال منیجر را از محبت خود محروم نکنید.

محمد برغمدی

محمد برغمدی

امام علی علیه السلام: با مردم آنگونه معاشرت كنيد، كه اگر مرديد بر شما اشك ريزند، و اگر زنده مانديد، با اشتياق سوي شما آيند.

12 دیدگاه برای «دستور tasklist و taskkill»

  • Avatar
    شهریور 19, 1395 در t 04:47
    Permalink

    ببخشید میشه بگید اون sample که آخر این اومده
    Taskkill.exe /f (forcefully) /im (image name) sample.exe
    رو توضیح ندادید
    جزو دستوره؟
    کارش چیه؟
    چرای برای مثالِ
    Taskkill.exe /f /im explorer.exe
    explorer اومد؟
    exe. آخرش واسه چیه؟
    به نظرم اگه این توضیحاتو هم اضاف کنید خیلی بهتر میشه
    مرسی خسته نباشید

    پاسخ دادن
    • محمد برغمدی
      شهریور 19, 1395 در t 07:14
      Permalink

      این آموزش کمی قدیمه و هنوز هیچ ویرایشی رو انجام نشده
      Sample.exe به منظور یک دستور نمونه یا مثال استفاده شده
      explorer.exe فایل اجرای محیط گرافیکی ویندوز که به عنوان مثال ازش استفاده کردم
      چشم

      پاسخ دادن
  • Avatar
    شهریور 19, 1395 در t 04:52
    Permalink

    این بخش روهم خوب متوجه نشدم:
    “و پارامتر IM برای مشخص کردن Process می باشد”
    چیشو مشخص میکنه؟
    ببخشید که سوالات زیاده ولی من تا یه چیزو کامل یادنگیرم بیخیال نمیشم
    🙂
    ممنون

    پاسخ دادن
    • محمد برغمدی
      شهریور 19, 1395 در t 07:17
      Permalink

      منظورم همون مشخص کردن Process هست که قرار توسط دستور Taskkill بسته بشه
      بعد از پارامتر -IM باید اسم Process رو بدی که میخوای توسط دستور Taskkill بسته شه
      خواهش میکنم – باعث افتخار که بتونم کمک کنم.

      پاسخ دادن
  • Avatar
    اسفند 18, 1395 در t 00:10
    Permalink

    سلام . خیلی ممنون از مطالب مفیدتون
    اگه میشه pdf این مقاله رو هم قرار بدید که بصورت آفلاین هم بهشتون دسترسی داشته باشم.

    پاسخ دادن
  • Avatar
    اردیبهشت 27, 1398 در t 14:47
    Permalink

    داداش ازت ممنونم واقعا مفید بود

    پاسخ دادن
  • Avatar
    مهر 14, 1398 در t 22:55
    Permalink

    سلام خسته نباشید. ممنون از مطب مفیدی که گذاشتید.

    من یک سوال در همین ارتباط داشتم که چند هفته است برای یک پروژه ویژوال وقتم رو گرفته و خیلی گیر رفع این مشکل هستم.

    اگر با این دستور explorer را ببندیم آیا دستور خط فرمانی دیگری هست که مجددا بتونیم explorer را باز کنیم.
    یعنی به جای باز کردن پنجره task manager و اجرای گزینه new task آیا میشه از طریق خط فرمان اینکار را انجام داد؟
    اگر بتونید برای رفع این مشکل به من کمک کنید خیلی ممنون میشم.

    پاسخ دادن
    • محمد برغمدی
      مهر 15, 1398 در t 17:24
      Permalink

      سلام جناب طاهری
      خیلی ساده خود دستور explorer.exe رو در خط فرمان تایپ کنید تا مجددا محیط explorer فعال بشه
      موفق باشید

      پاسخ دادن
  • Avatar
    آذر 1, 1398 در t 05:17
    Permalink

    سلام
    ممنون از موضوعات مفید تون
    تشکر

    پاسخ دادن
  • Avatar
    اردیبهشت 12, 1399 در t 01:11
    Permalink

    سلام ببخشید اگه میخوایم برنامه svchost رو ببندیم چیکار کنیم؟
    چون تو ویندوز svchost زیاد هست
    نمیشه ادرس مربوط به پوشه برنامه رو بدیم؟
    به جز pid راه دیگه هم داره

    پاسخ دادن
    • محمد برغمدی
      اردیبهشت 30, 1399 در t 04:52
      Permalink

      سلام
      برنامه svchost برای خود ویندوز و سرویس ها و برنامه های زیادی وابسته به این برنامه هستند، شما نمیتونید این برنامه رو متوقف کنید.
      موفق باشید 🙂

      پاسخ دادن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *