ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

تاريخيًا ، تم تطوير أدوات سطر الأوامر المساعدة على أنظمة Unix بشكل أفضل من تلك الموجودة على Windows ، ولكن مع ظهور حل جديد ، تغير الوضع.

يسمح Windows PowerShell لمسؤولي النظام بأتمتة معظم المهام الروتينية. باستخدامه، يمكنك تغيير الإعدادات، وإيقاف الخدمات وبدء تشغيلها، وكذلك إجراء الصيانة على معظم التطبيقات المثبتة. سيكون من الخطأ اعتبار النافذة الزرقاء بمثابة مترجم أوامر آخر. لا يعكس هذا النهج جوهر الابتكارات التي تقترحها Microsoft. في الواقع، إمكانيات Windows PowerShell أوسع بكثير: في سلسلة قصيرة من المقالات، سنحاول معرفة كيفية اختلاف حل Microsoft عن الأدوات التي نعرفها أكثر.

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

الميزات الرئيسية 

بالطبع، يعد Windows PowerShell في المقام الأول عبارة عن غلاف برمجة نصية، تم إنشاؤه في الأصل على .NET Framework ولاحقًا على .NET Core. على عكس الأصداف التي تقبل البيانات النصية وترجعها، يعمل Windows PowerShell مع فئات .NET التي لها خصائص وأساليب. يتيح لك PowerShell تشغيل الأوامر الشائعة ويمنحك أيضًا إمكانية الوصول إلى كائنات COM وWMI وADSI. ويستخدم مخازن مختلفة، مثل نظام الملفات أو سجل ويندوز، للوصول إلى ما يسمى. مقدمي الخدمات. تجدر الإشارة إلى إمكانية تضمين مكونات PowerShell القابلة للتنفيذ في تطبيقات أخرى لتنفيذ عمليات مختلفة، بما في ذلك. من خلال واجهة رسومية. والعكس صحيح أيضًا: حيث توفر العديد من تطبيقات Windows إمكانية الوصول إلى واجهات الإدارة الخاصة بها من خلال PowerShell. 

يسمح لك Windows PowerShell بما يلي:

  • تغيير إعدادات نظام التشغيل.
  • إدارة الخدمات والعمليات؛
  • تكوين أدوار الخادم ومكوناته؛
  • تثبيت نظام التشغيل؛
  • إدارة البرامج المثبتة من خلال واجهات خاصة؛
  • تضمين المكونات القابلة للتنفيذ في برامج الطرف الثالث؛
  • إنشاء البرامج النصية لأتمتة المهام الإدارية؛
  • العمل مع نظام الملفات وسجل Windows ومخزن الشهادات وما إلى ذلك.

شل وبيئة التطوير

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

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

للعمل مع الصدفة، عليك أن تتذكر بعض اختصارات لوحة المفاتيح:

  • يقوم السهمان لأعلى ولأسفل بالتمرير خلال السجل لتكرار الأوامر المكتوبة مسبقًا؛
  • يقوم السهم الأيمن الموجود في نهاية السطر بإعادة كتابة حرف الأمر السابق بحرف؛
  • يقوم Ctrl+Home بحذف النص المكتوب من موضع المؤشر إلى بداية السطر؛
  • يقوم Ctrl+End بحذف النص من المؤشر إلى نهاية السطر.

يعرض F7 نافذة تحتوي على أوامر مكتوبة ويسمح لك باختيار أحدها. تعمل وحدة التحكم أيضًا مع تحديد النص باستخدام الماوس، والنسخ واللصق، وتحديد موضع المؤشر، والحذف، ومسافة للخلف - كل ما نحبه.

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
يعد Windows PowerShell ISE بيئة تطوير كاملة تحتوي على محرر تعليمات برمجية مبوب ومميز ببناء الجملة، ومنشئ أوامر، ومصحح أخطاء مضمن، ومتع البرمجة الأخرى. إذا كتبت واصلة بعد اسم الأمر في محرر بيئة التطوير، فستحصل على جميع الخيارات المتاحة في القائمة المنسدلة مع الإشارة إلى النوع. يمكنك تشغيل PowerShell ISE إما من خلال اختصار من قائمة النظام، أو باستخدام الملف القابل للتنفيذ powershell_ise.exe.

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

أوامر الأوامر 

في Windows PowerShell، ما يسمى. أوامر cmdlets. هذه هي فئات .NET المتخصصة التي توفر مجموعة متنوعة من الوظائف. يتم تسميتها بـ Action-Object (أو Verb-Noun، إذا كنت تفضل ذلك)، ويشبه الرابط المفصول بواصلة المسند والموضوع في جمل اللغة الطبيعية. على سبيل المثال، كلمة Get-Help تعني حرفيًا "Get-Help"، أو في سياق PowerShell: "Show-Help". في الواقع، هذا مماثل للأمر man في أنظمة Unix، ويجب طلب الأدلة في PowerShell بهذه الطريقة، وليس عن طريق استدعاء أوامر cmdlets باستخدام مفتاح --help أو /?. لا تنسَ وثائق PowerShell عبر الإنترنت: مايكروسوفت لديها مفصلة تماما.

بالإضافة إلى Get، تستخدم أوامر cmdlets أيضًا أفعالًا أخرى للإشارة إلى الإجراءات (وليس الأفعال فقط، بالمعنى الدقيق للكلمة). وفي القائمة أدناه نعطي بعض الأمثلة:

Add - يضيف؛
Clear - واضح؛
Enable - شغله؛
Disable - اطفيء؛
New - يخلق؛
Remove - يمسح؛
Set - بسأل؛
Start - يجري؛
Stop - قف؛
Export - يصدّر؛
Import - يستورد.

هناك أوامر cmdlets خاصة بالنظام والمستخدم والاختيارية: نتيجة للتنفيذ، تقوم جميعها بإرجاع كائن أو مجموعة من الكائنات. فهي ليست حساسة لحالة الأحرف، أي. من وجهة نظر مترجم الأوامر، لا يوجد فرق بين الحصول على المساعدة والحصول على المساعدة. يتم استخدام الحرف ';' للفصل، ولكن من الضروري وضعه فقط في حالة تنفيذ عدة أوامر cmdlets على نفس السطر. 

يتم تجميع أوامر Windows PowerShell cmdlets في وحدات نمطية (NetTCPIP، وHyper-V، وما إلى ذلك)، ويوجد أمر Get-Command cmdlet للبحث حسب الكائن والإجراء. يمكنك عرض المساعدة لها مثل هذا:

Get-Help Get-Command

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

افتراضيًا، يعرض الأمر تعليمات مختصرة، ولكن يتم تمرير المعلمات (الوسائط) إلى أوامر cmdlets حسب الحاجة. بمساعدتهم، يمكنك، على سبيل المثال، الحصول على مساعدة تفصيلية (المعلمة -Detailed) أو كاملة (المعلمة -Full)، بالإضافة إلى عرض الأمثلة (المعلمة -أمثلة):

Get-Help Get-Command -Examples

يتم تحديث التعليمات في Windows PowerShell بواسطة Update-Help cmdlet. إذا تبين أن سطر الأوامر طويل جدًا، فيمكن نقل وسيطات cmdlet إلى السطر التالي عن طريق كتابة حرف الخدمة ''' والضغط على Enter - لن ينجح مجرد الانتهاء من كتابة الأمر في سطر واحد والاستمرار في سطر آخر.

فيما يلي بعض الأمثلة على أوامر cmdlets الشائعة: 

Get-Process - إظهار العمليات الجارية في النظام؛
Get-Service — عرض الخدمات وحالتها.
Get-Content - عرض محتويات الملف.

بالنسبة لأوامر cmdlets والأدوات المساعدة الخارجية المستخدمة بشكل متكرر، يحتوي Windows PowerShell على مرادفات قصيرة - أسماء مستعارة (من الاسم المستعار الإنجليزي). على سبيل المثال، dir هو اسم مستعار لـ Get-ChildItem. تتضمن قائمة المرادفات أيضًا نظائرها من أوامر أنظمة Unix (ls، ps، وما إلى ذلك)، ويتم استدعاء Get-Help cmdlet بواسطة أمر help. يمكن الاطلاع على قائمة كاملة من المرادفات باستخدام أمر Get-Alias ​​​​cmdlet:

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

البرامج النصية والوظائف والوحدات النمطية ولغة PowerShell

يتم تخزين البرامج النصية لـ Windows PowerShell كملفات نصية عادية ذات ملحق .ps1. لا يمكنك تشغيلها بالنقر المزدوج: تحتاج إلى النقر بزر الماوس الأيمن لاستدعاء قائمة السياق وتحديد العنصر "Run in PowerShell". من وحدة التحكم، سيتعين عليك إما تحديد المسار الكامل للبرنامج النصي، أو الانتقال إلى الدليل المناسب وكتابة اسم الملف. تشغيل البرامج النصية مقيد أيضًا بسياسة النظام، وللتحقق من الإعدادات الحالية، يمكنك استخدام Get-ExecutionPolicy cmdlet، والذي سيرجع إحدى القيم التالية:

Restricted — تم تعطيل تشغيل البرامج النصية (افتراضيًا)؛
AllSigned - يُسمح فقط بتشغيل البرامج النصية الموقعة من قبل مطور موثوق به؛
RemoteSigned - مسموح بتشغيل البرامج النصية الموقعة والخاصة؛
Unrestricted - يسمح بتشغيل أي البرامج النصية.

المسؤول لديه خياران. الأكثر أمانا ينطوي على توقيع البرامج النصية، ولكن هذا سحر خطير للغاية - سنتعامل معه في المقالات التالية. الآن دعونا نسلك الطريق الأقل مقاومة ونغير السياسة:

Set-ExecutionPolicy RemoteSigned

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
سيلزم تشغيل PowerShell كمسؤول للقيام بذلك، على الرغم من أنه يمكنك تغيير السياسة للمستخدم الحالي باستخدام إعداد خاص.

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

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

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

الناقلون

في المثال الأخير، استخدمنا بنية مألوفة لمستخدمي Unix Shell. في Windows PowerShell، يسمح لك الشريط العمودي أيضًا بتمرير إخراج أمر واحد إلى إدخال أمر آخر، ولكن هناك اختلافًا كبيرًا في تنفيذ المسار: لم نعد نتحدث عن مجموعة من الأحرف أو نوع ما من الأحرف نص. تقوم أوامر cmdlets المضمنة أو الوظائف المحددة من قبل المستخدم بإرجاع كائنات أو صفائف من الكائنات، ويمكنها أيضًا استقبالها كمدخلات. مثل Bourne Shell والعديد من الإصدارات اللاحقة له، يعمل PowerShell على تسهيل المهام المعقدة من خلال المسار.

أبسط مثال على خط الأنابيب يبدو كما يلي:

Get-Service | Sort-Object -property Status

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
أولاً، يتم تنفيذ أمر Get-Service cmdlet، ثم يتم تمرير كافة الخدمات التي يتلقاها إلى أمر Sort-Object cmdlet لفرزها حسب خاصية الحالة. تعتمد الوسيطة التي تم تمرير نتيجة القسم السابق من المسار إليها على نوعها - عادةً ما تكون InputObject. ستتم مناقشة هذه المشكلة بمزيد من التفصيل في مقالة مخصصة للغة برمجة PowerShell. 

إذا كنت ترغب في ذلك، يمكنك متابعة السلسلة وتمرير نتيجة عملية فرز الكائنات إلى أمر cmdlet آخر (سيتم تنفيذها من اليسار إلى اليمين). بالمناسبة، يتمتع مستخدمو Windows أيضًا بإمكانية الوصول إلى إنشاء ترقيم الصفحات المألوف لدى جميع Unixoids: 

Get-Service | Sort-Object -property Status | more

تشغيل المهام في الخلفية 

في كثير من الأحيان، من الضروري تشغيل أمر معين في الخلفية، حتى لا تنتظر نتيجة تنفيذه في جلسة الصدفة. يحتوي Windows PowerShell على العديد من أوامر cmdlets لهذه الحالة:

Start-Job - إطلاق مهمة الخلفية؛
Stop-Job - إيقاف مهمة الخلفية؛
Get-Job — عرض قائمة المهام الخلفية.
Receive-Job - عرض نتيجة تنفيذ المهمة في الخلفية؛
Remove-Job - حذف مهمة في الخلفية؛
Wait-Job - نقل مهمة الخلفية مرة أخرى إلى وحدة التحكم.

لبدء مهمة في الخلفية، نستخدم الأمر Start-Job cmdlet ونحدد أمرًا أو مجموعة من الأوامر بين قوسين متعرجين:

Start-Job {Get-Service}

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
يمكن معالجة مهام الخلفية في Windows PowerShell من خلال معرفة أسمائها. لنتعرف أولاً على كيفية عرضها:

Get-Job

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
والآن لنعرض نتيجة الوظيفة Job1:

Receive-Job Job1 | more

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
كل شيء بسيط جدًا.

تنفيذ الأوامر عن بعد

يسمح لك Windows PowerShell بتنفيذ الأوامر والبرامج النصية ليس فقط على الكمبيوتر المحلي، ولكن أيضًا على كمبيوتر بعيد، وحتى على مجموعة كاملة من الأجهزة. هناك عدة طرق للقيام بذلك:

  • تحتوي العديد من أوامر cmdlets على معلمة -ComputerNameولكن بهذه الطريقة لن يكون من الممكن، على سبيل المثال، إنشاء ناقل؛
  • cmdlet Enter-PSSession يسمح لك بإنشاء جلسة تفاعلية على جهاز بعيد؛ 
  • باستخدام الأمر cmdlet Invoke-Command يمكنك تشغيل الأوامر أو البرامج النصية على واحد أو أكثر من أجهزة الكمبيوتر البعيدة.

إصدارات بوويرشيل

لقد تغير PowerShell كثيرًا منذ إصداره الأول في عام 2006. الأداة متاحة للعديد من الأنظمة التي تعمل على منصات الأجهزة المختلفة (x86، x86-64، Itanium، ARM): Windows XP، Windows Server 2003، Windows Vista، Windows Server 2008/2008 R2، Windows 7، Windows 8، Windows 8.1، Windows RT وWindows RT 8.1 وWindows Server 2012/2012 R2 وWindows 10 وWindows Server 2016 وGNU/Linux وOS X. تم إصدار الإصدار الأخير 6.2 في 10 يناير 2018. من المرجح أن تعمل البرامج النصية المكتوبة للإصدارات السابقة في الإصدارات الأحدث، ولكن يمكن أن يكون النقل الخلفي مشكلة لأن PowerShell قدم عددًا كبيرًا من أوامر cmdlets الجديدة على مدار سنوات التطوير. يمكنك معرفة إصدار غلاف الأوامر المثبت على الكمبيوتر باستخدام خاصية PSVersion للمتغير المدمج $PSVersionTable:

$PSVersionTable.PSVersion

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
يمكنك أيضًا استخدام الأمر cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية
ويتم نفس الشيء مع أمر Get-Host cmdlet. في الواقع هناك العديد من الخيارات، ولكن لاستخدامها عليك أن تتعلم لغة البرمجة PowerShell، وهو ما سنفعله في المقال التالي

نتائج 

تمكنت Microsoft من إنشاء غلاف قوي حقًا مع بيئة متكاملة ملائمة لتطوير البرامج النصية. وهو يختلف عن الأدوات المألوفة لدينا في عالم Unix من خلال التكامل العميق مع أنظمة التشغيل التابعة لعائلة Windows، وكذلك مع البرامج الخاصة بها ومنصة .NET Core. يمكن أن يُطلق على PowerShell اسم الصدفة الموجهة للكائنات لأن أوامر cmdlets والوظائف المعرفة من قبل المستخدم تُرجع كائنات أو صفائف من الكائنات ويمكن أن تأخذها كمدخلات. نعتقد أن جميع مسؤولي الخادم على نظام التشغيل Windows يجب أن يمتلكوا هذه الأداة: لقد مر الوقت الذي كان بإمكانهم الاستغناء فيه عن سطر الأوامر. هناك حاجة بشكل خاص إلى غلاف وحدة تحكم متقدم لدينا VPS منخفض التكلفة يعمل بنظام التشغيل Windows Server Core، لكن هذه قصة مختلفة تمامًا.

ما هو Windows PowerShell وماذا يتم تناوله؟ الجزء 1: الميزات الرئيسية

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

ما هي المواضيع التي يجب تناولها أولاً في المقالات التالية في السلسلة؟

  • 53,2%البرمجة في PowerShell123

  • 42,4%وظائف ووحدات PowerShell98

  • 22,1%كيفية التوقيع على البرامج النصية الخاصة بك؟51

  • 12,1%العمل مع المخازن من خلال مقدمي الخدمات28

  • 57,6%أتمتة إدارة الكمبيوتر باستخدام PowerShell133

  • 30,7%إدارة البرامج وتضمين ملفات PowerShell التنفيذية في منتجات الجهات الخارجية71

صوّت 231 مستخدمًا. امتنع 37 مستخدما عن التصويت.

المصدر: www.habr.com

إضافة تعليق