هناك العديد من الأدوات المتاحة لإدارة نظام Windows وأتمتة المهام. تختلف خيارات إدارة نظام Windows من cmd القديم إلى واجهة سطر الأوامر المضمنة في Python. على الرغم من الخيارات المتنوعة، يفضل العديد من مسؤولي النظام استخدام cmd أو الأداة الأحدث نسبيًا PowerShell. تستعرض هذه المقالة حالات استخدام كل أداة وتقدم إجابة فنية لسؤال PowerShell مقابل PowerShell. مناقشة كمد.
ما هو PowerShell وcmd؟
لفهم PowerShell وcmd بشكل أفضل، يجب علينا أولاً تحديد مصطلح واحد: مترجم سطر الأوامر.
نقوم بالعديد من المهام اليومية على أجهزة الكمبيوتر لدينا، بدءًا من فتح ملفات الفيديو وحتى تصفح الويب أو حتى البرمجة. ولكن هل هناك طريقة للتواصل مباشرة مع نظام التشغيل؟ نعم. مترجم سطر الأوامر هو وسيط بين البشر ونظام تشغيل النظام. فهو يحول النص المكتوب بواسطة الإنسان إلى تعليمات مفهومة لنظام التشغيل. نحن نسمي هذه التعليمات المترجمة مكالمات نظام التشغيل. يفهم نظام التشغيل هذه المكالمات ويديرها. يحتوي كل نظام تشغيل على مترجم سطر أوامر مدمج؛ المترجم المضمن لأنظمة Windows هو موجه أوامر Windows، ويسمى عادةً cmd.
تاريخ الإصدار الأولي لـ cmd هو 1987، ومنذ ذلك الحين، أصبح أداة مفيدة لأتمتة عمليات Windows. ومع ذلك، في عام 2006، أصدرت Microsoft بيئة أوامر أخرى تُعرف باسم PowerShell. وفقًا لمايكروسوفت، كان تقديم PowerShell بمثابة استجابة لقيود cmd. بعد مرور سبعة عشر عامًا على طرحه، لا يحظى PowerShell بشعبية كبيرة بين مستخدمي Windows فحسب، بل أيضًا بين مستخدمي Linux. لذا، في القسم التالي، سنغطي الاختلافات بين الاثنين ونناقش كيف يغطي Powershell عيوب cmd كأداة أكثر تقدمًا لوضع حد للنقاش بين Windows PowerShell مقابل موجه الأوامر.
PowerShell مقابل cmd: مقارنة شاملة للأوامر والأداء والأمان
كلتا الأداتين عبارة عن برامج مقدمة من Microsoft لتسهيل الاتصال بين المستخدم ونظام التشغيل. ومع ذلك، منذ الإصدار المبكر لـ PowerShell، كان النقاش حول PpwerShell مقابل cmd مستمرًا بين مستخدمي Windows. ونأمل أن نقدم إجابة مناسبة لهذه المشكلة من خلال استكشاف المجالات الرئيسية التي يختلف فيها Windows PowerShell وcmd عن بعضهما البعض.
الأوامر
أول اختلاف ملحوظ بين PowerShell وcmd هو مجموعة الأوامر الخاصة بهما. يقدم PowerShell مجموعة غنية من الأوامر، المعروفة أيضًا باسم أوامر cmdlets. تعد القدرة على التشغيل باستخدام أوامر cmdlets إحدى الميزات الخاصة بـ PowerShell. هناك اختلاف آخر بين موجه الأوامر وPowerShell وهو أن أمر PowerShell يسمح لك بإنشاء أسماء مستعارة لأوامر PowerShell cmdlets، مما يعني أنه يمكنك إنشاء اختصارات لاستدعاء وظيفة PowerShell. تسمح هذه الميزة أيضًا بإضافة الأسماء المستعارة وتحريرها وحذفها في PowerShell. لا نحصل على هذا الخيار في موجه أوامر Windows.
يستطيع PowerShell أيضًا الحصول على تسلسلات من أوامر cmdlets والعمل عليها. في المقابل، لا يمكن لـ cmd تلقي أوامر متعددة في وقت واحد.
هناك اختلاف مهم آخر بين الاثنين يمكنه إظهار قدرات PowerShell بشكل كبير وهو نطاق مجموعات الأوامر. يحتوي PowerShell على مجموعة أوامر أكبر بكثير مقارنة بـ cmd، مما يسمح بنطاق أوسع من العمليات. إذا كنت تريد رؤية الفرق في حجم مجموعة الأوامر أثناء العمل، فيمكنك فتح كل أداة على حدة واختبارها بنفسك. لفتح PowerShell اضغط على زر ويندوز + R في مربع التشغيل واكتب بوويرشيل. ثم اكتب أمر cmdlet هذا واضغط على Enter للحصول على جميع الوظائف والأسماء المستعارة المتاحة في PowerShell:
Get-Command
لفتح cmd، اتبع نفس المسار إلى مربع التشغيل. في مربع التشغيل، اكتب كمد. ثم اكتب هذا الأمر للحصول على قائمة بجميع الوظائف المتاحة في cmd:
help
ستبدو نتيجة كل أمر كما يلي:


يحتوي PowerShell على آي إس إي (بيئة البرمجة النصية المتكاملة) التي تسمح بالبرمجة النصية المعقدة لـ PowerShell. وهذا يعني أن PowerShell هي لغة برمجة. وبشكل أكثر تحديدًا، فهي لغة برمجة موجهة للكائنات (تستخدم كائنات لتخزين البيانات). ومع ذلك، في cmd، يتم تخزين البيانات في شكل نص، مما يحد من قدرة cmd على تخزين أنواع البيانات المعقدة. مشكلة لا تواجهها في PowerShell. إن كونها لغة برمجة نصية هو ما يميز PowerShell عن cmd في مجال رئيسي آخر: تشغيل تسلسل التعليمات البرمجية. في cmd، يمكنك إنشاء ملف دفعي يحتوي على أجزاء التعليمات البرمجية التي تؤدي مهمة محددة معًا. في PowerShell، يمكنك كتابة برامج PowerShell النصية الأكثر تقدمًا من الملفات الدفعية وتسمح بمهام أكثر تعقيدًا. من المهم ملاحظة أن PowerShell يمكنه أيضًا تشغيل الملفات الدفعية.
فيما يلي جدول ملخص لـ PowerShell مقابل cmd فيما يتعلق باختلافات الأوامر الخاصة بهما.
| بوويرشيل | كمد |
| يستخدم أوامر cmdlets مع القدرة على إنشاء أسماء مستعارة | لا يدعم استخدام أوامر cmdlets وإنشاء الأسماء المستعارة |
| يدعم الأوامر المجمعة وأوامر cmdlets | يعمل فقط مع الأوامر الدفعية |
| قادر على متابعة تسلسل أوامر cmdlets في البرنامج النصي | يمكنه تنفيذ الأوامر واحدة تلو الأخرى، وليس في وقت واحد |
| لديه ISE | ليس لديه ISE منفصل |
| يستخدم الكائنات لتخزين البيانات | يستخدم النص لتخزين البيانات |
| يتبع اصطلاح الفعل والاسم لأسماء الوظائف | ليس من الممكن عادةً تخمين ما تفعله الوظيفة بناءً على الأمر |
الآن، لنقم بتنفيذ مهمة سهلة في كل من PowerShell وcmd لفهم اختلافات الأوامر بشكل أفضل. لنفترض أننا نريد إنشاء حساب مستخدم جديد على cmd. للقيام بذلك، يجب علينا أولاً فتح cmd عبر مربع التشغيل ثم استخدام الكود التالي.
net user [USERNAME] [PASS] /add

للقيام بنفس المهمة على PowerShell، نحتاج أولاً إلى فتح PowerShell من مربع التشغيل وكتابة الكود التالي.
New-LocalUser [USERNAME] (CovertTo-SecureString "[PASS]")

كما ترون في cmd، ليس من الواضح ما تفعله الوظيفة بناءً على الأمر. أثناء استخدامك في PowerShell، يمكنك الحصول على فهم عام لما تفعله الوظيفة استنادًا إلى أمر cmdlet لأنه موجود في اصطلاح تسمية الفعل والاسم. ويتيح لك أيضًا تشفير كلمة المرور.
أداء
يختلف PowerShell وcmd أيضًا من حيث الأداء. إذا كانت مهمتك تتضمن التعامل مع كمية كبيرة من البيانات، فإن PowerShell يتألق بشكل أكبر نظرًا لأدائه الأسرع في تشغيل المهمة. ترجع سرعة PowerShell إلى ميزتين مهمتين:
- طبيعة PowerShell الموجهة للكائنات
- القدرة على استخدام خطوط الأنابيب في الأمر الخاص بك
تؤدي الميزة الأولى لـ PowerShell إلى تخزين بيانات أكثر تنظيمًا وفعالية، مما يجعل عملية التدقيق في البيانات أسهل وأسرع. السمة الثانية لـ PowerShell تسمح بتسليم البيانات من أمر إلى آخر. وهذا يعني أنه يمكنك استخدام مخرجات أحد الأوامر كمدخل للأمر التالي.
هناك اختلاف مهم آخر في الأداء بين cmd وPowerShell وهو أنه يمكنك استخدام أي محرر تعليمات برمجية لتشغيل تعليمات PowerShell البرمجية. لذلك، إذا كانت هناك بيئة برمجة تفضلها، مثل بيتشرم or VScodeيمكنك استخدام ذلك لتشغيل الأوامر الإدارية بدلاً من واجهة PowerShell. الشيء الوحيد الذي تحتاجه هو ملحق PowerShell في محرر التعليمات البرمجية الخاص بك.
يجري بناؤها على .شبكة النظام الأساسي، يستطيع PowerShell الوصول إلى مكتبات البرمجة وبالتالي تعديل كائنات Windows على المستوى الأساسي. إن وصول PowerShell إلى مجموعة واسعة من مكتبات .net يجعله أداة أفضل لإدارة النظام وأتمتة المهام.
حماية
يختلف PowerShell و cmd أيضًا في حالة الأمان. لدى PowerShell معايير صارمة سياسة التنفيذ يمنع المستخدمين من تشغيل تعليمات برمجية مشبوهة وضارة. يمكن لـ PowerShell إنشاء سجل مفصل لجميع الأوامر التي تم تشغيلها على النظام. يمكن أن يساعد تسجيل كتلة البرنامج النصي هذا في اكتشاف الخروقات الأمنية وتحديد أسبابها. وآخر ميزة أمان خاصة بـ PowerShell هي تشفير السلسلة. من خلال تشفير البيانات الحساسة مثل كلمات المرور والأنواع الأخرى من المعلومات السرية، يمكنك تأمينها بشكل أفضل.
على الرغم من أن cmd غير مزود بميزات الأمان هذه، إلا أنه يمكن استخدامه مع أدوات الأمان الأخرى. لكن مزايا الأمان المضمنة هذه خاصة بـ PowerShell.
الآن بعد أن أصبح لدينا نظرة عامة على إمكانيات PowerShell مقابل موجه الأوامر، فلننتقل إلى مراجعة حالات الاستخدام الرئيسية لكل أداة.
حالات الاستخدام الرئيسية لبرنامج PowerShell
كأداة سطر أوامر قوية، يمكن استخدام PowerShell لأغراض مختلفة. وقد أدرجنا هنا بعضًا من هذه المجالات:
إدارة النظام والأتمتة
يمكننا استخدام PowerShell لأتمتة مهام إدارة النظام مثل ترقية التطبيقات البرمجية وتثبيتها، واستكشاف الأخطاء وإصلاحها، وتكوين الشبكة، وصيانة البنية التحتية للخادم. وباعتبارها لغة برمجة نصية قوية، تتيح لنا PowerShell كتابة البرامج النصية وتشغيلها لجميع هذه المهام وتسهل تشغيلها تلقائيًا.
إدارة الموارد السحابية
يحتوي PowerShell على مجموعة أدوات غنية من أوامر cmdlets لإدارة البيئات السحابية مثل Azure وAWS. باستخدام البرامج النصية PowerShell، يمكننا أتمتة مهام الإدارة السحابية مثل إدارة موارد الشبكة وإنشاء الأجهزة الافتراضية وإدارتها.
معالجة وتحليل البيانات
يبدو استخدام PowerShell لتحليل البيانات غريبًا بعض الشيء في البداية. لكن تذكر أن PowerShell هي لغة برمجة نصية تتمتع بإمكانية الوصول إلى خدمات Microsoft السحابية مثل Azure. لذلك، لا يمكن استخدامه لمعالجة البيانات وتحليلها فحسب، بل يمكن أن يكون أداة مفيدة أيضًا. من المزايا الكبيرة لاستخدام PowerShell لتحليل البيانات أنه يمكنه تحويل جميع أنواع البيانات إلى نتيجة مستوعبة: كائن. لذا، يمكنك تحليل بياناتك باستخدام طريقة عامة. يمكن أن يكون PowerShell مفيدًا أيضًا في جمع البيانات. على سبيل المثال، يمكنه إنشاء سجل لأحداث Windows، وإنشاء ملف CSV لتلك البيانات، ويكون جاهزًا للتحليل.
إدارة ويندوز
ربما تكون إدارة أنظمة Windows وتكوينها هي حالة الاستخدام الأساسية لـ PowerShell. يحتوي على مجموعة غنية من أوامر cmdlets لدعم مهام إدارة النظام مثل إدارة الملفات وتكوين الشبكة وإضافة المستخدمين أو حذفهم. يعمل PowerShell أيضًا بالتكامل مع أداة مراقبة النظام القوية، Windows Management Instrumentation (WMI)، مما يتيح للمسؤولين أداء مهامهم على الأنظمة البعيدة.
حالات الاستخدام الرئيسية لـ cmd
نظرًا لأن cmd هي أول أداة لسطر أوامر Windows، فهي قادرة على فعل الكثير. دعونا نراجع بعض حالات استخدامه في أنظمة Windows.
المهام الإدارية الأساسية
إذا كنت على دراية بموجه الأوامر وتؤدي فقط المهام الإدارية الأساسية مثل إنشاء دليل وإدارة الملفات، فإن cmd أكثر من كافٍ لتلبية احتياجاتك.
تشغيل التطبيقات القديمة
هناك بعض تطبيقات Windows القديمة التي لم يتم تحديثها منذ فترة طويلة. قد تحتاج إلى استخدام cmd لتشغيل هذه التطبيقات القديمة.
تشغيل الملفات الدفعية
على الرغم من أن PowerShell يمكنه تشغيل الملفات الدفعية، إلا أن cmd هو المترجم الافتراضي لتشغيل الأوامر الدفعية. تعد كتابة الملفات الدفعية واستخدام cmd لتنفيذها حلاً جيدًا لأتمتة المهام الأساسية في إدارة النظام.
Powershell مقابل cmd أيهما الأفضل لإدارة النظام والأتمتة وإدارة Windows والبرمجة النصية
بالنسبة لمتخصصي تكنولوجيا المعلومات ومسؤولي النظام المحترفين، ليس هناك شك في أن PowerShell يتفوق في جميع مجالات إدارة النظام. يتم دعم PowerShell من خلال مكتبات .net القوية، وISE، وطبيعته الموجهة للكائنات، مما يجعله أداة لا تقبل المنافسة. مجموعة أدواته الشاملة، والقدرة على العمل مع البيانات المنظمة، والوصول إلى مصادر البيانات الغنية تجعله مرشحًا رائعًا لتحليل البيانات. ووظيفتها المحددة تجعلها أداة رائعة لإدارة النظام المتقدم ومهام التشغيل الآلي. وفوق كل هذه المميزات يمكن استخدام PowerShell مع الذكاء الاصطناعي لأتمتة مهام تكنولوجيا المعلومات مثل استكشاف الأخطاء وإصلاحها ومعالجة المشكلات.
في المقابل، cmd هي أداة سطر أوامر أساسية ذات وظائف محدودة. ومع ذلك، فإن الاختيار بين الاثنين يعتمد بشكل كبير على نوع المهمة التي تريد تنفيذها.
مقارنة إيجابيات وسلبيات
يهدف الجدول أدناه إلى تلخيص جميع الميزات والاختلافات المحددة بين PowerShell وcmd.
| المعلمة | بوويرشيل | كمد |
| دعم البرمجة الموجهة للكائنات | ✅ | ❌ |
| دعم البرامج النصية والتطبيقات القديمة | ❌ | ✅ |
| القدرة على القيام بمهام معقدة بكميات كبيرة من البيانات | ✅ | ❌ |
| الوصول إلى إطار عمل صافي | ✅ | ❌ |
| تنفيذ كافة الأوامر دون الوصول الإداري | ❌ | ✅ |
| دعم الإدارة عن بعد | ✅ | ❌ |
| الوصول إلى منتجات Microsoft السحابية | ✅ | ❌ |
| ميزات تصحيح الأخطاء ومعالجة الأخطاء | ✅ | ❌ |
خاتمة
في هذا المنشور، قمنا بمراجعة جميع حالات الاستخدام المهمة لـ PowerShell مقابل cmd وتحدثنا عن الاختلافات الرئيسية بينهما. بشكل عام، يعد PowerShell أداة أكثر تقدمًا قادرة على تشغيل المهام المعقدة. في حين أن cmd أكثر توافقًا مع المهام الإدارية السهلة.
التعليمات
أي واحد يجب أن أستخدمه؟ بوويرشيل أو كمد؟
يمكنك استخدام cmd لمهام الإدارة اليومية والتطبيقات القديمة والملفات الدفعية. إذا تم تضمين جميع مهام سطر الأوامر الخاصة بك في هذه المجالات الثلاثة، فلن تحتاج إلى الاهتمام بتعلم PowerShell. ومع ذلك، بالنسبة للمهام والأتمتة الأكثر تعقيدًا، تحتاج إلى معرفة كيفية استخدام PowerShell.
ما هي الاختلافات الرئيسية بين PowerShell وcmd؟
يختلف PowerShell وcmd في مجموعة الأوامر والأداء. يحتوي PowerShell على مجموعة أوامر أكبر ويعمل بشكل أسرع.
هل PowerShell لغة برمجة؟
نعم، PowerShell هي أيضًا لغة برمجة موجهة للكائنات تسمح بكتابة البرامج النصية واختبارها وتصحيح الأخطاء.
ما هو مكتوب في PowerShell؟
تتم كتابة أوامر cmdlets الخاصة بـ PowerShell بشكل أساسي بلغة C#.