⚡ الفرق بين CMD و PowerShell

Professor Technology

الفرق بين CMD و PowerShell

في أنظمة Windows، يظهر أمامنا خياران شائعان للتعامل مع النظام عبر سطر الأوامر: CMD (Command Prompt) و PowerShell.
ورغم أن شكلهما متشابه (نافذة سوداء بانتظار الأوامر)، إلا أن بينهما فروقًا جوهرية تجعل كل واحد مناسبًا لاستخدامات معينة.

الجذور والنشأة

  • CMD (Command Prompt)

    • ظهر لأول مرة مع MS-DOS في الثمانينات.

    • هدفه: تنفيذ أوامر بسيطة لإدارة الملفات، تشغيل البرامج، وإجراء عمليات أساسية على النظام.

    • يعتمد على أوامر نصية تقليدية مثل dir, copy, del.

  • PowerShell

    • أطلقته مايكروسوفت عام 2006.

    • ليس مجرد "واجهة أوامر"، بل بيئة برمجة كاملة (Scripting Environment) مبنية على .NET.

    • يستخدم كائنات (Objects) بدلًا من النصوص فقط.

الفلسفة الأساسية

  • CMD: يعمل بأسلوب نصّي (Text-based).

    • أي أن المخرجات = نصوص فقط.

    • إذا أردت تحليلها أو إعادة استخدامها، تحتاج إلى أدوات إضافية (Parsing).

  • PowerShell: يعمل بأسلوب كائني (Object-based).

    • الأوامر تعيد كائنات (Objects) يمكن تمريرها مباشرة لأوامر أخرى عبر Pipeline.

    • هذا يجعل التعامل مع البيانات أسهل وأقوى.

الأوامر مقابل الـ Cmdlets

  • CMD يعتمد على أوامر ثابتة (مثل ipconfig, ping).

  • PowerShell يستخدم Cmdlets، وهي أوامر خاصة مكتوبة بالصيغة:

    Verb-Noun

    مثال:

    • Get-Process (عرض العمليات)

    • Stop-Service (إيقاف خدمة)

    • Get-EventLog (قراءة السجلات)

القوة في الإدارة والأتمتة

  • CMD: مناسب للمهام السريعة مثل فتح برنامج أو نسخ ملف.

  • PowerShell: مصمم للأتمتة (Automation) والإدارة الشاملة.

    • التحكم بخدمات Windows.

    • إدارة Active Directory.

    • إدارة السحابة (Azure, AWS, M365).

    • تشغيل سكربتات متقدمة جدًا.

أمثلة عملية

🔹 CMD – إظهار العمليات الجارية:

tasklist

🔹 PowerShell – إظهار العمليات الجارية (مع تفاصيل ككائنات):

Get-Process

يمكن بعدها عمل:

Get-Process | Where-Object { $_.CPU -gt 100 }

(يعرض فقط العمليات التي استهلكت CPU أكثر من 100).

منظور الأمن السيبراني 🔐

  • CMD: محدود في الاستغلال الأمني، لكنه ما زال يُستخدم في سكربتات بسيطة للهجوم/الدفاع.

  • PowerShell:

    • أداة قوية جدًا للهجوم (جمع معلومات، تشغيل سكربتات ضارة، تحميل Payloads من الإنترنت).

    • لذلك صار تحت مراقبة أمنية صارمة (Windows Defender, AMSI, Logging).

    • وفي نفس الوقت، هو سلاح دفاعي مذهل (استخراج Logs، تحليل ملفات، أتمتة Incident Response).

الخلاصة

  • CMD = قديم وبسيط → مفيد للعمليات الأساسية.

  • PowerShell = حديث وقوي → بيئة برمجة كاملة للأتمتة، الإدارة، والأمن.

  • مختص الأمن المعلوماتي لا بد أن يتقن PowerShell لأنه "سلاح ذو حدين": يفيد في الهجوم، والدفاع على حد سواء.

حسابنا علي منصة | X
قناتنا علي منصة | Telegram 
شبكة قنوات الفريق 
يمكنك الإنضمام للبوت الذي يضم جميع شروحات وكتب وكورسات الامن السيبراني👇🏻

إرسال تعليق