الفرق بين 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، وهي أوامر خاصة مكتوبة بالصيغة:
مثال:
-
Get-Process
(عرض العمليات) -
Stop-Service
(إيقاف خدمة) -
Get-EventLog
(قراءة السجلات)
-
القوة في الإدارة والأتمتة
-
CMD: مناسب للمهام السريعة مثل فتح برنامج أو نسخ ملف.
-
PowerShell: مصمم للأتمتة (Automation) والإدارة الشاملة.
-
التحكم بخدمات Windows.
-
إدارة Active Directory.
-
إدارة السحابة (Azure, AWS, M365).
-
تشغيل سكربتات متقدمة جدًا.
-
أمثلة عملية
🔹 CMD – إظهار العمليات الجارية:
🔹 PowerShell – إظهار العمليات الجارية (مع تفاصيل ككائنات):
يمكن بعدها عمل:
(يعرض فقط العمليات التي استهلكت CPU أكثر من 100).
منظور الأمن السيبراني 🔐
-
CMD: محدود في الاستغلال الأمني، لكنه ما زال يُستخدم في سكربتات بسيطة للهجوم/الدفاع.
-
PowerShell:
-
أداة قوية جدًا للهجوم (جمع معلومات، تشغيل سكربتات ضارة، تحميل Payloads من الإنترنت).
-
لذلك صار تحت مراقبة أمنية صارمة (Windows Defender, AMSI, Logging).
-
وفي نفس الوقت، هو سلاح دفاعي مذهل (استخراج Logs، تحليل ملفات، أتمتة Incident Response).
-
الخلاصة
-
CMD = قديم وبسيط → مفيد للعمليات الأساسية.
-
PowerShell = حديث وقوي → بيئة برمجة كاملة للأتمتة، الإدارة، والأمن.
-
مختص الأمن المعلوماتي لا بد أن يتقن PowerShell لأنه "سلاح ذو حدين": يفيد في الهجوم، والدفاع على حد سواء.