ربما تعمل بسعادة على خادم ويندوز عن بُعد، ثم تجد عملية تعمل بشكل خاطئ وتستهلك دورات وحدة المعالجة المركزية القيمة. ماذا تفعل؟ أقتلها!
في هذا البرنامج التعليمي، ستتعلم كيفية إنهاء عملية ويندوز باستخدام الأدوات الأساسية والأدوات المصادر الخارجية وPowerShell. ستتعلم أولاً كيفية فحص العمليات الجارية في ويندوز ثم قتل العمليات الجارية.
المتطلبات الأساسية
إذا كنت ترغب في متابعة الخطوات في هذا البرنامج التعليمي، تأكد من وجود ما يلي مسبقًا:
- A Windows PC – All demos in this tutorial will use Windows 10, but Windows 7+ will work also.
- A Windows Server or another Windows desktop to use as your target for killing the remote tasks. This tutorial uses a standalone Windows Server 2016 as the remote server.
- مجموعة Sysinternals Suite من Microsoft.
- Windows PowerShell 5 أو أحدث. يستخدم هذا البرنامج التعليمي PowerShell v7.1.3
استعلام عملية ويندوز البعيدة باستخدام Tasklist
منذ ويندوز إكس بي، هناك أداة مفيدة تسمى Tasklist. Tasklist هي أداة مفيدة تستعلم العمليات على أجهزة الكمبيوتر البعيدة. قبل أن تتمكن من قتل عملية، يجب أن تكتشفها أولاً!
افتح جلسة PowerShell أو سطر الأوامر على سطح المكتب الخاص بك واكتب الأمر التالي لعرض جميع العمليات الجارية على الكمبيوتر البعيد الخاص بك.
الأمر أدناه يستعلم جهاز كمبيوتر بعيد (/S
) ويوثق الاتصال باسم المستخدم المسؤول (/U
) وكلمة المرور (/P
).
ستلاحظ أدناه أن اسم الجلسة لا يظهر. نظرًا لتشغيلك لأمر tasklist
على جهاز كمبيوتر بعيد، لا يوفر tasklist
اسم الجلسة.

ربما تفضل فقط سرد عملية واحدة. ليس مشكلة. للقيام بذلك، قم بتحديد المعلمة /FI
. تقبل المعلمة /FI
استعلامًا يتم تمريره إلى tasklist
لتصفية عمليات معينة.

الاستعلام عن عمليات نظام Windows البعيدة باستخدام PSList
أداة أخرى لعرض العمليات الجارية هي PSList، وهذه الأداة جزء من Sysinternals Suite. تلك المجموعة من الأدوات موجودة منذ سنوات عديدة وتم إنشاؤها بواسطة مارك راسينوفيتش، الرئيس التنفيذي لـ Azure!
لنبدأ في كيفية عرض العمليات الجارية على جهاز كمبيوتر بعيد.
1. افتح جلسة PowerShell أو موجه الأوامر على سطح المكتب الخاص بك وقم بتغيير الدليل إلى المكان الذي استخرجت فيه مجموعة Sysinternals.
2. في جلسة PowerShell الخاصة بك، قم بتشغيل الأمر التالي لعرض العمليات الجارية على جهاز الكمبيوتر البعيد واستخدام CPU المرتبط في الوقت الحقيقي.
الأمر أدناه يقوم بتشغيل pslist
للاستعلام عن جميع عمليات Windows عن بُعد على جهاز الكمبيوتر WIN-BANGJIEFNOC
باستخدام اسم المستخدم Administrator
(-u
) وكلمة المرور (-p
).
الأمر يستخدم التبديل -s
الذي يحول pslist
إلى “وضع مدير المهام” الذي يحدث القائمة بانتظام.
إذا كانت هذه المرة الأولى التي تستخدم فيها أداة Sysinternals ، فقد يظهر شعار يطلب منك قبول EULA؛ انقر فوق موافق.
ترى الآن الناتج التالي من تشغيل هذا الأمر ؛ لهذه المقالة ، يهمك 3 من هذه القيم. كما هو موضح أدناه.
- الاسم: اسم العملية.
- Pid: معرف العملية ، قيمة حرجة مستخدمة في هذا البرنامج التعليمي ، يمكن استخدام رقم PID لإيقاف عملية عن بُعد. إنه الهوية الرقمية المخصصة لعملية العملية.
- CPU: يظهر هذا في الوقت الفعلي استخدام وحدة المعالجة المركزية المتاحة بشكل عام.
القيم الأخرى متعلقة بالذاكرة وخارج نطاق هذا المقال.

3. بما أن الخطوة الثانية استخدمت التبديل -s
، اضغط على Ctrl-C لإنهاء pslist
والعودة إلى وحدة التحكم.
ضيق قائمة العمليات المرجعية باستخدام التبديل
-e
تليه اسم العملية ، على سبيل المثال ،-e Winlogon
.
قتل العمليات حسب اسم العملية باستخدام PSKill
بمجرد أن تعرف كيفية العثور على العمليات عن بعد، دعنا نقفز الآن إلى كيفية قتلها. للبدء، دعونا نغطي أداة pskill . أولاً، تعلم كيفية قتل العمليات حسب اسم العملية.
1. تأكد من وجود عملية يمكنك قتلها على الخادم البعيد. ستستخدم هذا البرنامج التعليمي عملية المفكرة.
2. افتح جلسة PowerShell أو موجه أوامر على سطح المكتب المحلي الخاص بك وقم بتغيير الدليل إلى المكان الذي استخرجت منه مجموعة Sysinternal ثم قم بتشغيل الأمر التالي. يمكنك رؤية الصيغة النحوية لـ pskill
تشبه إلى حد كبير pslist
.

3. الآن، قم بتشغيل pslist
، كما شرح في القسم السابق، لتأكيد توقف العملية بالفعل.

قتل العمليات حسب معرف العملية باستخدام PSKill
قتل العملية حسب الاسم قد يكون كافياً لاحتياجاتك إذا كانت نسخة واحدة فقط من تلك العملية قيد التشغيل أو إذا كنت تريد قتل جميع العمليات التي تحمل ذلك الاسم. ماذا لو كنت ستقتل نسخة معينة من عملية مشغلة؟ ستوضح الخطوات التالية ذلك.
1. على الخادم البعيد الخاص بك، افتح المفكرة مرتين؛ ستقوم بقتل واحدة من هذه العمليات في هذا العرض التوضيحي؛ بالطبع يمكنك استبدال العمليات الأخرى.
2. قم بتشغيل الأمر التالي مع ملاحظة واحدة من Pid كما هو موضح أدناه؛ ستحتاج إلى ذلك للخطوة التالية.

3. باستخدام PID، قم الآن بتشغيل pskill
، وقدم PID كآخر وسيط.

4. في النهاية، تحقق من أن لديك ما زالت نسخة واحدة من Notepad تعمل من خلال إعادة تشغيل pslist
. يجب أن ترى الآن فقط نسخة واحدة من Notepad تعمل.

قتل عمليات Windows البعيدة باستخدام TaskKill بواسطة الاسم
أداة taskkill هي مدمجة في Windows وتتضمن خيارات سطر الأوامر الإضافية لإعادة تشغيل العمليات باسم المستخدم واسم التطبيق. لنبدأ ونقتل Notepad مرة أخرى!
قتل العملية بالاسم
1. على الخادم البعيد الخاص بك، افتح Notepad؛ Notepad هو العملية التي ستقوم بقتلها في هذا العرض التوضيحي؛ يمكنك، بالطبع، استبدال عملية أخرى.
2. افتح جلسة PowerShell أو موجه الأوامر على سطح مكتبك. كتابة الأمر التالي سيقتل notepad.exe
المخرجات معروضة أدناه:
/IM هو المعلمة للصورة؛ في هذه الحالة، هو notepad.exe

3. للتأكد من توقف العملية، قم بتشغيل tasklist
. يجب أن لا ترى أي مهام تطابق تلك الفلتر.

قتل عمليات Windows البعيدة باستخدام TaskKill بواسطة PID
قتل عملية باستخدام taskkill
باستخدام PID ليس مختلفًا كثيرًا عن استخدام اسم العملية. ولكن، نظرًا لعدم القدرة على استخدام الاسم، ستحتاج أولاً إلى العثور على PID ومن ثم تمرير ذلك إلى taskkill
.
في افتراض تشغيلك Notepad على جهاز الويندوز البعيد الخاص بك:
1. قم بتشغيل tasklist
كما هو موضح أدناه للعثور على مُعرف العملية (PID) لعملية Notepad. احرص على تدوين أحد PID’s كما هو موضح أدناه؛ ستحتاج إليه في الخطوة التالية.

2. الآن، قم بتشغيل taskkill
وقدم مُعرف العملية (PID) كآخر وسيط.

3. في النهاية، قم بتشغيل tasklist
للتحقق من توقف العملية.

قتل عملية ويندوز عن بُعد باستخدام PowerShell
توفر PowerShell خيارات لقتل العمليات عن بُعد. الأمر الأول Stop-Process
لا يمكنه قتل العملية عن بُعد بشكل طبيعي، حيث لا يتيح لك تحديد اسم الكمبيوتر. ولكن يمكنك التغلب على هذه المشكلة عن طريق تشغيل Stop-Process
عن بُعد عبر PowerShell Remoting.
1. إذا كان الخادم المضيف والخادم البعيد ليسا في نطاق Active Directory، قدم أولاً اسم مستخدم وكلمة مرور، مما يخلق كائن PSCredential.

2. بعد ذلك، نظرًا لأن البرنامج التعليمي سيستخدم SSL للاتصال بالكمبيوتر البعيد وسيستخدم شهادة غير موقعة، قم بإنشاء PSSessionOption سيتم تجاوز فحص الشهادة من قبل جهة الاعتماد الموثوق بها.
3. الآن، قم بالاتصال بالخادم باستخدام أمر Enter-PSSession
، الذي ينشئ جلسة تفاعلية إلى الخادم البعيد.
الأمر أدناه يقوم بالاتصال بجهاز الكمبيوتر WIN-BANGJIEFNOC.local.net
باستخدام اسم المستخدم وكلمة المرور المقدمة أعلاه (Credential
)، ويتجاوز فحص جهة الاعتماد (SessionOption
)، ويقوم بالاتصال عبر SSL (UseSSL
).

4. بمجرد الاتصال بالمضيف البعيد، قم بفحص العملية التي تريد إنهاء تشغيلها عن طريق تشغيل Get-Process
. في هذه الحالة، سترى عملية notepad
.

5. لإيقاف هذه العملية، قم بتشغيل Stop-Process
، كما هو موضح أدناه.
6. في النهاية، قم بتأكيد إنهاء تشغيل العملية عن طريق إعادة تشغيل Get-Process
، ويجب أن تتلقى رسالة خطأ.

إذا كنت ترغب في إيقاف عملية Windows البعيدة بطريقة غير تفاعلية، استخدم الأمر
Invoke-Command
باستخدام المعلمات التالية:Invoke-Command -ComputerName WIN-BANGJIEFNOC.local.net -Credential $credentials -ScriptBlock {Stop-Process -ProcessName notepad} -UseSSL
. تغليف أمرStop-Proces
في معلمةScriptBlock
يرسل الأمر إلى المضيف البعيد.
Conclusion
تعلمت مختلف الطرق لقتل العمليات عن بُعد وكيفية التغلب على الحالات التي قد تمنع قواعد جدار الحماية على الشبكة من العمل بشكل صحيح. قد ساعدك هذا البرنامج التعليمي أيضًا على إصلاح نظام التشغيل Windows.
الأدوات التي تعلمتها هي أدوات فعّالة؛ استخدمها بحذر!
Source:
https://adamtheautomator.com/how-to-kill-a-windows-process/