يمتلك نظام التشغيل ويندوز على العديد من الأدوات المدمجة التي تساعد المستخدمين على الوصول لكافة إمكانيات نظام التشغيل فضلا عن المساعدة في حل كافة المشاكل التي يمكن ان تواجه المستخدمين، ولعل من ضمن هذه الأدوات كل من CMD Command Prompt  و PowerShell، واللذان غالبا ما يجرى استخدامهما لحل المشاكل، حيث يمكن اعتبار أن PowerShell هو النسخة الأكثر تقدما من CMD، وفيما يلى نعرض الاختلافات بينهما.

ما هو موجه الأوامر (CMD)

تم طرح هذه الميزة مع ويندوز 95 و98 وكان يعرف بـ MS-DOS، إذ يتيح للمستخدمين التواصل والتفاعل بشكل مباشر مع نظام التشغيل ويندوز باستخدام مجموعة من الأوامر الكتابية، وقد طرحت مايكروسوفت CMD مع ويندوز NT والذى كان أفضل من النسخ السابقة، حيث يتم استخدامه للتفاعل مع نظام الملفات وحل الأخطاء والمشاكل المرتبطة بنظام التشغيل والتي من الصعب حلها بالطرق العادية.

ما هو الـ PowerShell

PowerShell هو نسخة متقدمة من CMD. يتم استخدامه لأتمتة مهام إدارة النظام التي لا يمكن الوصول إليها من CMD. أيضًا ، يتم استخدامه لتشغيل برامج خارجية مثل ping وcopy. علاوة على ذلك، إنها أداة سطر أوامر مبنية على .NET Framework. علاوة على ذلك ، يحتوي على ميزات أكثر من CMD العادية.
تم إطلاق هذه الأداة لأول مرة في 2006 لنسخة Windows XP SP2، ثم جاء PowerShell 2.0 مع ويندوز 7 والذى وفر العديد من المميزات وكان متوافقا مع العديد من أوامر CMD، لكن في ويندوز 10، فهي بمثابة أداة كتابة الأوامر بشكل افتراضي، حيث يمكن لها العمل مع لغة البرمجة #C كما أنها متكاملة مع NET Framework.
وهذا الذي سمح للمستخدمين بكتابة مجموعة من scripts والتي يمكن تخصيصها لتنفيذ أوامر تلقائية، كما يسمح بتنفيذ بعض المهام التي تحتاج صلاحيات الأدمن بشكل تلقائي، فهذا قد منح مرونة أكثر من CMD فهي تعد بيئة أفضل لكتابة وتنفيذ الأوامر.

الفرق بين CMD و PowerShell

  • الـ PowerShell عبارة عن واجهة سطر أوامر قوية وبيئة نصية تتيح تشغيل البرامج النصية scripts المعقدة لأداء المهام الإدارية لنظام Windows بسهولة وكفاءة بينما CMD هي واجهة سطر أوامر توفر مجموعة من الأوامر للمستخدم للتفاعل مع الكمبيوتر لأداء المهام.
  • يستخدم CMD في الغالب من قبل مسؤولي النظام لمعالجة ملفات الباتش (ملف يحتوي على مجموعة من الأوامر), واستكشاف بعض الأخطاء الشائعة وإصلاح ملفات النظام الفاسدة.
  • يتميز الـ PowerShell بـ cmdlets، وهي مجموعة من الأوامر يمكن للمستخدمين تنفيذها بأمر واحد فقط وتسمى هذه المجموعة من الأوامر بالبرامج النصية (scripts)، في CMD يجب عليك الانتظار حتى يتم تنفيذ الأمر السابق بالكامل قبل إعطاء الأمر التالي، أما PowerShell فهو يوفر الوقت بهذه الطريقة.
  • الـ PowerShell يمكنه تفسير كل من أوامر الباتش وأوامر PowerShell بينما يمكن لـ CMD تفسير أوامر الباتش فقط.
  • الـ PowerShell أكثر تعقيدًا وقوة من CMD.
  • يحتوي الـ PowerShell على ميزات وتحسينات إضافية مقارنة بـ CMD.

الخلاصة

يستخدم CMD بشكل عام للتنقل بين ملفات النظام وبين المجلدات وإدارتها والتفاعل معهما، وتعديل الخصائص، كما يستعمل في استكشاف الأخطاء وإصلاحها، فمثلا نستعمل الأمر SFC (مدقق ملفات النظام) للتأكد من سلامة ملفات النظام وإصلاحها.
PowerShell يفضل استخدامه لإدارة البيانات، خصوصا عبر شبكة من أجهزة الكمبيوتر، بما أنه يمكنك من تشغيل أغلبية أوامر CMD عليه فهذا يعطيه ميزة إضافية، وكما ذكرنا سابقا فيمكنه تشغيل cmdlets والتي هي مجموعة من الأوامر (scripts) لتنفيذ الوظائف والمهام. ويمكنه أيضا تشغيل بعض خوارزميات التشفير والقيام ببعض مهام قواعد البيانات فهو مناسب للمبرمجين، ببساطة فهو مخصص للمهام المعقدة.

إذا كنت تريد أن تتعمق أكثر في استعمال الـ PowerShell, فنقترح عليك زيارة Microsoft TechNet, فهو يحتوي على الكثير من الأمثلة والأدلة التي ستساعدك على فهم الأداة أكثر.

الي هنا نكون قد انتهينا، نراكم في موضوع آخر، فلا تنسونا من نشر المقال لتعم الفائدة.