الفرق بين موجه الأوامر Command Prompt و PowerShell في ويندوز

اقرأ في هذا المقال


موجه الأوامر (Command prompt) أو (cmd) هو تطبيق افتراضي لنظام التشغيل ويندوز، يتم استخدامه للتفاعل مع أي من عناصر (windows) في نظام التشغيل (windows)، تمكن المستخدمين من التفاعل مباشرة مع النظام، يستخدم على نطاق واسع لتنفيذ ملفات الدُفعات أو تشغيل أدوات مساعدة بسيطة، يعد (PowerShell) إصدارًا أكثر تقدمًا من (cmd)، إنّها ليست مجرد واجهة ولكن أيضًا لغة برمجة نصية تُستخدم لتنفيذ المهام الإدارية بسهولة أكبر، يمكن تشغيل معظم الأوامر التي يتم تنفيذها على (cmd) على (PowerShell) أيضًا، في هذا المقال، سنناقش الفرق بين (Powershell) و(Command Prompt) بالتفصيل.

ما هو موجه أوامر Windows

موجه أوامر (Windows)، “المعروف أيضًا باسم سطر الأوامر (command line)، (cmd.exe) أو ببساطة (cmd)” هو غلاف أوامر يعتمد على نظام التشغيل (MS-DOS) من الثمانينيات والذي يمكّن المستخدم من التفاعل مباشرة مع نظام التشغيل، على وجه التحديد، يوفر غلاف الأوامر هذا بيئة لتشغيل التطبيقات والأدوات المساعدة المختلفة؛ يتم عرض المخرجات في نفس النافذة، من الممكن استخدام (shell cmd) لإنشاء البرامج النصية وتحريرها وحفظها في ملفات مجمعة لحل مهام الأتمتة في إطارات النظام الواحد؛ ومع ذلك، لم يكن مخصصًا أبدًا لإدارة النظام عن بُعد.

ما هو Windows PowerShell

(Windows PowerShell) عبارة عن غلاف أوامر ولغة برمجة نصية مصممة لمهام إدارة النظام، تمّ إنشاؤه على رأس (.NET framework)، وهو عبارة عن منصة لبرمجة البرامج التي طورتها شركة (Microsoft) في عام (2002)، تساعدك أوامر (PowerShell) أو (cmdlets) في إدارة البنية الأساسية لنظام (Windows)، بالإضافة إلى ذلك، فهي تمكن المستخدم من الوصول إلى السجل ونظام الملفات ومساحة (Windows Management Instrumentation (WMI)) على الأنظمة عن بُعد، علاوةً على ذلك، يمكّنك غلاف أوامر (PowerShell) من إنشاء نصوص برمجية معقدة بشروط متعددة.

كيف يختلف PowerShell عن موجه الأوامر

كما ذكرنا سابقًا، يعد (cmd) أداة قديمة جدًا لم تكن مخصصة لإدارة النظام عن بُعد، يتطلب توسيع وظائفه أدوات مساعدة إضافية، مثل (Microsoft Sysinternals PsExec)، من ناحية أخرى، يوفر (PowerShell) العديد من أوامر (cmdlets) لتبسيط مهام إدارة النظام، وهو يدعم أتمتة مجموعة واسعة من المهام، مثل إدارة (Active Directory)، وإدارة المستخدمين والأذونات، واستخراج البيانات حول تكوينات الأمان، علاوةً على ذلك، يدعم (PowerShell) الآن (Linux).

أيهما يجب أن أختار PowerShell أم cmd

من الواضح أنّ هناك العديد من الأسباب التي جعلت (Windows PowerShell) يستبدل موجه الأوامر باعتباره الإعداد الافتراضي في نظام التشغيل (Windows 10)، وتمّ تثبيته مسبقًا بدءًا من نظام التشغيل (Windows XP)، ولكن إذا كنت معتادًا على استخدام (cmd)، فلن تشعر بأي إلحاح في التبديل إلى (PowerShell)، في الواقع، تعمل معظم الأوامر من (cmd) بشكل جيد في بيئة (PowerShell)، أرادت (Microsoft) تبسيط حياة مسؤولي النظام، لذلك قامت بإنشاء أسماء مستعارة لموجه الأوامر في (PowerShell) تمكنها من تفسير أوامر (DOS) القديمة كأوامر (PowerShell) جديدة، لمعرفة كيفية تعيين أوامر (cmd) القديمة لأحدث أوامر (PowerShell cmdlets)، استخدم الأمر (Get-Alias).

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

الاختلافات الرئيسية بين PowerShell وموجه الأوامر CMD

  • يتمثل الاختلاف الرئيسي بين (PowerShell) وموجه الأوامر في فهم ما يفعله الأمر أو الأمر (cmdlet) للمستخدم العادي، سيتمكن المستخدم العادي من تخمين ما يفترض أن يفعله (PowerShell cmdlet) بمجرد النظر إلى (cmdlet) حيث يسهل تفسير معظم أوامر (cmdlet) لأنّها تتبع اصطلاحًا سهلًا لفعل متبوعًا باسم.
  • أوامر (cmdlet) تتبع اصطلاح “الفعل-الاسم” (verb-noun)، الجزء الأول من أي أمر (cmdlet) سيحدد نوع الإجراء الذي سينفذه الأمر (cmdlet)، أي الحصول على أو تعيين أو إضافة وبما أنّه متبوع باسم فإنّه سيشير إلى ما سينفذ الإجراء.
  • يحتوي (PowerShell) على أمر (Get-help) الذي سيساعد المستخدم في جميع الأوامر المتاحة، وبناء الجملة، والأسماء المستعارة، بعض أمثلة أوامر (cmdlets) هي (Add-Content) و(Get-Content) و(Get-Command)، يسهل على المستخدم العادي فهم أداء أوامر (cmdlets) بمجرد النظر إليها، من ناحية أخرى، دعونا نلقي نظرة على بعض أنواع برنامج تشغيل أوامر (cmd ،cipher ،assoc)، لا يمكن التعرف على الأوامر بسهولة بالنسبة للمستخدم العادي.
  • هناك اختلاف آخر بين (PowerShell) و(cmd) يكمن في استخدامها، يستخدم (Cmd) بشكل أساسي لتنفيذ أوامر الدُفعات (batch commands)، والقيام ببعض عمليات استكشاف الأخطاء وإصلاحها الأولية، بينما يمكن استخدام (PowerShell) لتنفيذ أوامر الدُفعات بالإضافة إلى الأغراض الإدارية.
  • يمكن أيضًا كتابة البرامج النصية في (PowerShell) لأتمتة المهام، يحتوي (PowerShell) أيضًا على (ISE) ممّا يسهل كتابة البرامج النصية وتصحيحها، لا يمكن استخدام (Cmd) للتفاعل مع عناصر النظام في المركز، بينما نظرًا لأنّ (PowerShell) مبني على نظام أساسي (.net) فإنّه يمكن أن يتفاعل مع عناصر (windows) حتى على المستوى الأساسي.
  • يعمل (Cmd) مع النص فقط، (PowerShell) مثل (Linux) ويعمل مع الأنابيب (pipes)، هذا يعني أنّه يمكن تمرير إخراج أمر (cmdlet) إلى أمر (cmdlet) آخر، هذا يضمن أنّ التفاعل بين البرامج المختلفة في النظام ممكن أو حتى التفاعل بين الأنظمة المختلفة المتصلة في الشبكة.
  • يوفر (PowerShell) للمستخدم القدرة على إنشاء أسماء مستعارة لأوامر (cmdlets) أو البرامج النصية ممّا يسمح له بالتبديل بينهما بطريقة تبدو سهلة، الإخراج (output) في (PowerShell) هو عنصر.

شارك المقالة: