أجهزة الكمبيوتر شبابيك إنترنت

وصف بوويرشيل. ما هو بوويرشيل؟ الشروع في العمل مع PowerShell

5 نوفمبر 2014 الساعة 08:07 مساءً

البدء السريع في PowerShell (الجزء الأول)

  • إدارة النظام،
  • بوويرشيل
  • درس تعليمي

الأتمتة فقط. بوويرشيل فقط.

مقدمة

كهواية وعندما يكون لدي وقت، أقوم بتدريس الطلاب في UKIT (كلية موسكو الحكومية لتكنولوجيا المعلومات سابقًا). في الوقت الحالي، ليس لدي سوى القليل من الوقت لأخصصه لمجموعة من الطلاب، لكنه يكفي لإعداد مقال هنا عن حبري.

أعمل كمسؤول نظام في شركة كبيرة غير متخصصة في مجال تكنولوجيا المعلومات ولديها الكثير من موارد تكنولوجيا المعلومات. حسب نوع النشاط، يبدو أنه يحل عددا كبيرا من المهام المماثلة لخدمة المستخدمين.

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

تحذير: PowerShell يسبب الإدمان.

مقدمة

تقول لنا ويكيبيديا:
ويندوز باورشيل- أداة أتمتة قابلة للتوسيع من مايكروسوفت، يتكون من غلاف سطر الأوامر ولغة البرمجة النصية المصاحبة.

قد تبدو بيئة PowerShell مثل سطر الأوامر:


powershell.exe

أو كتطبيق:


powershell_ise.exe

Powershell_ise.exeتسمى بيئة البرمجة النصية المتكاملة - Windows PowerShell ISE. يتيح لك العمل مع اللغة في بيئة مناسبة مع تمييز بناء الجملة، ومنشئ الأوامر، والإكمال التلقائي للأوامر عن طريق الضغط على TAB ووسائل الراحة الأخرى. مثالية لإنشاء واختبار البرامج النصية.

لبدء البيئة powershell.exeأو powershell_ise.exeفقط اكتب نفس الاسم في سطر التنفيذ.

يحتوي ملف البرنامج النصي PowerShell على الامتداد .ps1.

لا يمكن تشغيل البرنامج النصي باستخدام LMB مزدوج. يتم ذلك على وجه التحديد حتى لا يتم الإضرار بالنظام من خلال برنامج نصي تم تشغيله عن طريق الخطأ.

للتشغيل، انقر بزر الماوس الأيمن وحدد "تشغيل باستخدام PowerShell":

بالإضافة إلى وجود قيود على تشغيل البرامج النصية LMB، يُحظر تنفيذ البرامج النصية في النظام افتراضيًا، مرة أخرى، للسبب الموضح أعلاه - لعدم الإضرار بالنظام. للتحقق من سياسة التنفيذ الحالية، قم بتشغيل الأمر:

الحصول على سياسة التنفيذ

سوف نحصل على إحدى القيم التالية مع احتمال كبير، إذا كان هذا هو الإطلاق الأول، فسنحصل عليه مقيد.

  • مقيد- لا يمكن تشغيل البرامج النصية.
  • الكل موقع- يمكن فقط تشغيل البرامج النصية الموقعة من قبل ناشر موثوق به. سيتم طلب التأكيد قبل تشغيل البرنامج النصي للناشر الموثوق؛
  • التوقيع عن بعد- السماح بتشغيل البرامج النصية التي أنشأناها والبرامج النصية التي تم تنزيلها والموقعة من قبل ناشر موثوق به؛
  • غير مقيد- لا توجد قيود، يمكن تشغيل كافة البرامج النصية.

للتنفيذ والاختبار، خفض السياسة إلى التوقيع عن بعدعن طريق تشغيل الأمر:

Set-ExecutionPolicy RemoteSigned

هيا بنا نبدأ

أمر cmdlet
  • أوامر Cmdlets هي أوامر PowerShell التي تحتوي على وظائف متنوعة؛
  • يمكن أن تكون أوامر cmdlets إما من إنشاء النظام أو من قبل المستخدم؛
  • تتم تسمية أوامر cmdlets وفقًا لقاعدة الفعل والاسم، مما يجعلها أسهل في التذكر؛
  • تقوم أوامر cmdlets بإخراج النتائج ككائنات أو مجموعات من الكائنات؛
  • يمكن لأوامر Cmdlets تلقي البيانات لمعالجة البيانات ونقلها عبر خط أنابيب (المزيد حول خطوط الأنابيب لاحقًا)؛
  • أوامر Cmdlets ليست حساسة لحالة الأحرف (يمكنك كتابة get-process، وGet-Process، وGeT-pRoCeSs)؛
  • ليس من الضروري وضع "بعد أوامر cmdlets ; "، إلا عندما نقوم بتنفيذ أوامر cmdlets متعددة على سطر واحد (Get-Process؛ Get-Services).

على سبيل المثال، للحصول على العمليات الحالية، سنقوم بتشغيل الأمر:

ونحصل على النتيجة:

جربها بنفسك:

Get-Service # للحصول على حالة الخدمات التي تعمل على أجهزة الكمبيوتر

Get-Content C:\Windows\System32\drivers\etc\hosts # للحصول على محتويات الملف. في هذه الحالة، ملف المضيفين

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

الحصول على تعليمات -Cmdlet الفئة

إذا استخدمنا PowerShell ISE، فإننا نجعل عملية التطوير أسهل.
فقط أدخل شرطة " - " بعد أن ندخل إلى أمر cmdlet، سنحصل على جميع الخيارات الممكنة للمعلمات وأنواعها:

يحاول:

الحصول على الخدمة -الاسم ص*

ومع ذلك، إذا نسينا الخصائص التي يحتوي عليها هذا الأمر cmdlet أو ذاك، فسنقوم بتشغيله احصل على عضو:

الحصول على العملية | الحصول على عضو #Sign "|" يسمى الناقل. عنه أدناه.

لا توجد معلومات كافية؟ دعنا نشير إلى المساعدة المتعلقة بالمعلمة -أمثلة:

الحصول على المساعدة الحصول على العملية -أمثلة

نحصل على الوصفة الحصول على العمليةوحتى مع أمثلة الاستخدام:

  • يمكن أن تحتوي أوامر Cmdlets على أسماء مختصرة - أسماء مستعارة. على سبيل المثال، بدلا من احصل على مساعدةيمكن استخدامها ببساطة يساعد. للحصول على كافة الاختصارات، تشغيل الحصول على الاسم المستعار.

يحاول:

بدء عملية المفكرة

وهو مشابه للكتابة:

ابدأ تشغيل المفكرة

الآن دعونا نوقف العملية:

إيقاف العملية -اسم المفكرة

Spps -اسم المفكرة

قلنا سابقًا أن أوامر cmdlets تتم تسميتها وفقًا لقاعدة الفعل والاسم. اسمحوا لي أن أوضح أن الفعل لا يجب أن يكون يحصل. بالإضافة إلى ما يمكننا الحصول عليه، يمكننا أن نطلب تعيين(تذكر، Set-ExecutionPolicy)، قم بتشغيل يبدأ، قف قف، انتاج خارج، يخلق جديدواشياء أخرى عديدة. اسم أمر cmdlet لا يقتصر على أي شيء، وعندما ننشئ أنا وأنت اسمًا خاصًا بنا، يمكننا تسميته كما يحلو لك.

دعنا نحاول الإخراج إلى ملف:

"مرحبا حبر!" | الملف الخارجي C:\test.txt & C:\test.txt

بالمناسبة يمكنك كتابتها هكذا:

"مرحبا حبر!" > C:\test.txt & C:\test.txt

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

ما هو بوويرشيل؟

من أجل فهم أفضل، يجب علينا أولا أن نفهم ما هي الصدفة. في علوم الكمبيوتر، الصدفة عبارة عن واجهة مستخدم توفر الوصول إلى خدمات نظام التشغيل المختلفة. قد تعتمد الصدفة على سطر الأوامر أو قد تتضمن واجهة مستخدم رسومية (GUI).

Windows PowerShell عبارة عن غلاف تم تطويره بواسطة Microsoft لأغراض أتمتة المهام وإدارة التكوين. تعتمد هذه الصدفة القوية على إطار عمل .NET وتتضمن غلاف سطر الأوامر ولغة البرمجة النصية.

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

تم إصدار الإصدار الأول من PowerShell في نوفمبر 2006 لأنظمة التشغيل Windows XP وWindows Server 2003 وWindows Vista. الأحدث هو الإصدار 4.0، الذي تم إصداره في أكتوبر 2013. ويأتي بشكل افتراضي مع Windows 8.1 وWindows Server 2012 R2.

ماذا يمكنك أن تفعل مع باورشيل؟

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

تتيح لك إمكانيات PowerShell تبسيط المهام المتكررة التي تستغرق وقتًا طويلاً وأتمتتها عن طريق إنشاء البرامج النصية والجمع بين أوامر متعددة معًا.

إذا كنت مسؤول شبكة، فستجد أن PowerShell مفيد جدًا عند العمل مع Active Directory. وبالنظر إلى أن الأداة تحتوي على مئات من الأوامر القابلة للتخصيص والتي تسمى cmdlets، فإن احتمال أن يساعدك PowerShell على أن تصبح أكثر إنتاجية مرتفع للغاية.

كيفية تشغيل PowerShell على نظام التشغيل Windows 8.1؟

إذا لم يكن لديك لوحة PowerShell على شاشة البدء أو اختصار على سطح المكتب، فيمكنك فتحه باستخدام البحث - وهذه إحدى أسهل الطرق. اضغط على +Q، واكتب "powershell"، ثم اضغط على Enter.

يمكنك أيضًا فتح PowerShell من قسم التطبيقات في شاشة البدء: انتقل إلى شاشة البدء وحرك المؤشر إلى الزاوية اليسرى السفلية، أسفل المربع الأخير في العمود الأول مباشرةً. انقر على الأيقونة مع توجيه السهم للأسفل. ثم انقر على أيقونة PowerShell في قسم "الأدوات المساعدة".

لفتح PowerShell باستخدام مربع الحوار "تشغيل"، اضغط على +R، واكتب "powershell" ثم اضغط على Enter.

كيفية تشغيل بوويرشيل على نظام التشغيل Windows 7؟

في نظام التشغيل Windows 7، يمكنك البحث عن الأداة من خلال البحث عن "powershell" في قائمة "ابدأ".

يمكنك أيضًا فتح PowerShell من خلال قائمة "ابدأ" في قسم "الملحقات".

من الواضح أن الأمر أعلاه في نافذة التشغيل يعمل في نظام التشغيل Windows 7 أيضًا.

من يستخدم PowerShell عادةً؟

لا شك أن PowerShell هو الاختيار الأمثل للعديد من مسؤولي تكنولوجيا المعلومات. ولسبب وجيه، لأن الأداة تبسط عمليات الإدارة إلى حد كبير وتقلل من حجم العمل في شبكات الشركات الكبيرة.

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

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

يتيح لك PowerShell القيام بأكثر من ذلك بكثير مما يمكن تغطيته في مقال واحد، لذا إذا كنت مهتمًا حقًا، فإننا نوصي بشدة بشراء وقراءة أحد الكتب العديدة التي تغطي قوة هذه الأداة.

أتمنى لك يوماً عظيماً!

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

ما الذي ساهم في ظهور Windows PowerShell؟

قبل PowerShell، كان هناك ( و ها هم) الأدوات التالية لأتمتة وإدارة الخدمات: سطر أوامر Windows وWindows Script Host. لكن هذه التقنيات لها عيوب.

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

تحتوي معظم منتجات البرامج على واجهة وحدة تحكم، على سبيل المثال. يمكننا التحكم في البرنامج باستخدام سطر الأوامر، مع توفير الموارد بسبب غياب تكلفة تشغيل الواجهة الرسومية. حتى أن Microsoft تقوم بإصدار إصدارات بدون واجهة رسومية لنظام تشغيل خادم Windows Server ( Server Core، Windows Server 2016 يحتوي أيضًا على Nano Server)، ولكن كل هذا لا يكفي، لأن إمكانيات سطر الأوامر محدودة، أي. لن نكون قادرين على كتابة بعض المنطق المعقد لأتمتة شيء ما، وحتى لو استطعنا، فسوف يستغرق الأمر وقتًا ومعرفة.

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

تتيح لك تقنية Windows Script Host تنفيذ جميع المهام الإدارية كسطر الأوامر، بما في ذلك التشغيل الآلي لها عن طريق كتابة نصوص WSH، ولكن هنا يمكننا بالفعل استخدام لغات برمجة كاملة ( VBScript وJScript)، أي. يمكن تنفيذ المنطق والخوارزميات المعقدة. بالإضافة إلى ذلك، بمساعدة WSH، نقوم بإدارة منتجات البرامج من خلال واجهة كائنية، وبعبارة أخرى، Windows Script Host هو أكثر من ذلك بكثير " أكثر برودة» من سطر الأوامر. لكن هذه التكنولوجيا أيضًا لم تصبح الأداة المثالية لإدارة هذه الإدارة وأتمتتها لمسؤولي النظام، نظرًا لأن Windows Script Host يتطلب معرفة لغات البرمجة المذكورة أعلاه، وهو أمر غير ضروري في الواقع لمسؤولي النظام. يحتاج المسؤولون فقط إلى أداة إدارية بسيطة تتمتع بالقدرة على برمجة بعض الإجراءات، ولا يريدون التعمق في نماذج الكائنات الخاصة بمنتجات البرامج في لغات البرمجة VBScript وJScript.

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

ما هو ويندوز باورشيل؟

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

في Windows PowerShell، طورت Microsoft مفهوم أوامر cmdlets ( أوامر cmdlets)، وهو نظام تسمية الأوامر " فعل اسم" يتيح هذا النظام لمسؤولي النظام إتقان العمل وتبسيطه بسرعة باستخدام PowerShell.

باستخدام Windows PowerShell، يمكنك:

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

يحتوي Windows PowerShell على العديد من الأدوات المساعدة والأوامر شائعة الاستخدام والتي يمكنك تشغيلها من سطر الأوامر، مثل ipconfig وping وغيرها. تم ذلك لتسهيل انتقال مسؤولي النظام من سطر الأوامر إلى PowerShell.

أيضًا، من أجل الراحة، تحتوي العديد من الأوامر والأدوات المساعدة المستخدمة بشكل متكرر في PowerShell على مرادفات ( الاسم المستعار)، على سبيل المثال cls هو مرادف لـ Clear-Host cmdlet، dir هو مرادف لـ Get-ChildItem ( يمكن الاطلاع على القائمة الكاملة للمرادفات عن طريق تشغيل Get-Alias ​​​​cmdlet).

لتبسيط البحث عن الأمر المطلوب، يحتوي PowerShell على أمر cmdlet Get-Command خاص، يمكنك من خلاله البحث حسب الفعل والاسم. يتم تجميع كافة الأوامر في Windows PowerShell في وحدات نمطية ( على سبيل المثال، فرط-V، NetTCPIP)، مما يسهل أيضًا العثور على الأمر الصحيح.

بمجرد العثور على الأمر المطلوب، يمكنك الاطلاع على تعليمات العمل مع هذا الأمر، أي. help، هناك أمر Get-Help cmdlet خاص لهذه الأغراض، على سبيل المثال، سيظهر الأمر التالي تعليمات لأمر Get-Command cmdlet:

الحصول على مساعدة الحصول على القيادة

يمكن أن تكون المساعدة في Windows PowerShell قصيرة ومفصلة ( المعلمة - مفصلة)، ممتلىء ( المعلمة-كاملة)، ويمكنك أيضًا عرض الأمثلة فقط ( المعلمة - أمثلة). سيعرض الأمر التالي أمثلة فقط لاستخدام أمر Get-Command cmdlet:

الحصول على مساعدة الحصول على الأوامر -أمثلة

تعليمات PowerShell قابلة للتحديث، على سبيل المثال. يمكن تحديثه باستخدام أمر Update-Help.

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

ظهر الإصدار الأول من PowerShell 1.0 في 14 نوفمبر 2006 وتم إصداره كتوزيع منفصل يمكن تثبيته على الإصدارات التالية من أنظمة تشغيل Windows: Windows XP Service Pack 2 وWindows Server 2003 Service Pack 1 وWindows Vista.

في Windows Server 2008، جاء PowerShell 1.0 كمكون يجب تثبيته أيضًا.

بدءًا من Windows 7 وWindows Server 2008 R2، يأتي PowerShell كمكون أساسي في النظام ( أولئك. مثبت مسبقًا، لا حاجة لتثبيته). يوجد أدناه جدول المراسلات بين إصدار PowerShell وإصدار نظام التشغيل Windows ( أولئك. ما هو إصدار PowerShell المثبت افتراضيًا على أي إصدار من Windows):

نسخة بوويرشيل إصدارات ويندوز
بوويرشيل 2.0 ويندوز 7، ويندوز سيرفر 2008 R2
بوويرشيل 3.0 ويندوز 8، ويندوز سيرفر 2012
بوويرشيل 4.0 ويندوز 8.1، ويندوز سيرفر 2012 R2
بوويرشيل 5.0 ويندوز 10، ويندوز سيرفر 2016

مع كل إصدار جديد، يصبح PowerShell أداة إدارية قوية بشكل متزايد للمقارنة، وكان PowerShell الأول يحتوي على حوالي 130 cmdlets، وفي PowerShell 5.0 يوجد بالفعل أكثر من 600!

يمكنك معرفة الإصدار الحالي من PowerShell باستخدام خاصية PSVersion للمتغير المدمج $PSVersionTable، على سبيل المثال، قم بتشغيل الأمر التالي:

$PSVersionTable.PSVersion

أو قم بتشغيل الأمر cmdlet

الحصول على المتغير -اسم PSVersionTable -القيمة فقط

حيث ستكون قيمة PSVersion هي إصدار PowerShell.

لغة بوويرشيل

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

تحتوي لغة PowerShell على بناء جملة موحد لكتابة الأوامر وبنية تسمية لهذه الأوامر بناءً على مبدأ " فعل اسم"، مما يجعل هذه اللغة بديهية لكل من المبرمجين ومسؤولي النظام.

ويندوز باورشيل

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

هناك عدة طرق لتشغيل PowerShell، على سبيل المثال:

  • من سطر الأوامر عن طريق كتابة PowerShell؛
  • من خلال مربع الحوار " ينفذ» ( اختصار لوحة المفاتيح Win + R)، وكتابة PowerShell أيضًا؛
  • في نظام التشغيل Windows 7 - ابدأ->كافة البرامج->البرامج الملحقة->Windows PowerShell ->Windows PowerShell؛
  • في Windows 8.1 أو Windows Server 2012 R2 - ابدأ->كافة البرامج ->أدوات النظام ->Windows PowerShell؛
  • في نظام التشغيل Windows 10 أو Windows Server 2016 - ابدأ->كافة البرامج ->دليل Windows PowerShell ( في المجموعة دبليو) -> ويندوز بوويرشيل.

مثال على تشغيل PowerShell في Windows Server 2016

لقطة شاشة لبرنامج PowerShell في Windows Server 2016

أوامر الأوامر في PowerShell

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

بالإضافة إلى أوامر cmdlets الخاصة بالحصول على البيانات (Get)، هناك أيضًا أنواع من أوامر cmdlets مثل:

  • إضافة - إضافة البيانات؛
  • واضح واضح؛
  • تمكين – تمكين؛
  • تعطيل – إيقاف؛
  • جديد - إنشاء؛
  • إزالة – ​​إزالة؛
  • مجموعة - مجموعة؛
  • ابدأ - ابدأ؛
  • قف قف؛
  • تصدير - تصدير؛
  • استيراد - استيراد؛
  • و أكثر من ذلك بكثير.

يمكن عرض القائمة الكاملة لأوامر cmdlets في Windows PowerShell باستخدام أمر Get-Command cmdlet الخاص. على سبيل المثال، قم بتشغيله باستخدام المعلمة -CommandType cmdlet، ونتيجة لذلك، سيتم عرض قائمة أوامر cmdlets على شاشتك.

الحصول على الأوامر -CommandType cmdlet

كما فهمت بالفعل، تحتوي أوامر cmdlet على معلمات يمكننا من خلالها تحديد إجراءات أمر cmdlet. يمكن أن تكون المعلمات مطلوبة أو اختيارية، على سبيل المثال، لا يحتوي أمر Get-Command cmdlet على معلمات مطلوبة.

الصورة أدناه توضح طريقة البحث عن أمر cmdlet حسب الفعل ( المعلمة الفعل). في هذه الحالة، قمنا بعرض قائمة أوامر cmdlets التي يمكنها إعادة تشغيل شيء ما.

فريق

الحصول على الأمر - إعادة تشغيل الفعل

للبحث عن أمر cmdlet حسب الاسم، يجب عليك استخدام المعلمة Noun. على سبيل المثال، لدينا أدناه قائمة بأوامر cmdlets التي تعمل مع الخدمات.

فريق

الحصول على القيادة - خدمة الاسم

إذا لم تجد أمر cmdlet المطلوب بالاسم الكامل، فيمكنك استخدام قناع بتنسيق *نص*.

خط الأنابيب في PowerShell

إحدى الميزات الرئيسية لبرنامج Windows PowerShell هي القدرة على استخدام خط الأنابيب عند تنفيذ الأوامر.

الناقل– هذا هو نقل نتيجة أمر cmdlet عبر شريط عمودي (|) إلى أمر cmdlet آخر. في الوقت نفسه، كما تتذكر، تعمل أوامر PowerShell cmdlets مع الكائنات وتعيد الكائنات وفقًا لذلك، ويتم أيضًا نقل الكائنات عبر المسار.

باستخدام المسار، يمكنك تنفيذ المهام المعقدة بطريقة بسيطة ومريحة دون الحاجة إلى كتابة خوارزميات ونصوص برمجية معقدة.

على سبيل المثال، لنتعرف على اسم أكبر ملف في الدليل "C:\Windows\System32" ( مثال بسيط لخط الأنابيب).

فريق

الحصول على ChildItem - المسار "C:\Windows\System32" - ملف | فرز طول الكائن -تنازلي | حدد الكائن -أولاً 1

  • Get-ChildItem - cmdlet للحصول على الكائنات في الدليل المحدد؛
  • Sort-Object هو أمر cmdlet لفرز الكائنات، في حالتنا نقوم بالفرز حسب حجم الملف ( الطول -تنازلي);
  • Select-Object هو أمر cmdlet لتحديد الخصائص المطلوبة للكائن؛ في حالتنا، نعرض الحقول القياسية والكائن الأول فقط، أي. ملف كبير( المعلمة -الأولى 1).

يتم فصل كافة أوامر cmdlets عن بعضها البعض بواسطة شريط عمودي. يتم تمرير نتيجة كل أمر cmdlet كمدخل إلى أمر cmdlet آخر، على سبيل المثال. أولا نحصل على كافة الكائنات في الدليل المحدد، ثم نقوم بفرز النتيجة وأخيرا تحديد الكائن الأول.

تنفيذ المهام في الخلفية

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

يمكنك إدارة كافة المهام التي تعمل في الخلفية، على سبيل المثال، عرض قائمة المهام، إيقاف المهمة، حذف المهمة، وبالطبع عرض نتيجة المهمة.

يحتوي Windows PowerShell على أوامر cmdlets التالية للتعامل مع مهام الخلفية:

  • Start-Job – بدء مهمة في الخلفية؛
  • Stop-Job – إيقاف مهمة في الخلفية
  • الحصول على وظيفة – عرض قائمة المهام الخلفية؛
  • تلقي المهمة - عرض نتيجة مهمة الخلفية؛
  • إزالة الوظيفة - إزالة مهمة في الخلفية؛
  • Wait-Job – انقل مهمة الخلفية إلى المقدمة لانتظار انتهاءها.

للتشغيل في الخلفية، تحتاج إلى كتابة أمر Start-Job، وفي الأقواس المتعرجة () أمر أو مجموعة من الأوامر التي تريد تشغيلها في الخلفية.

على سبيل المثال، لننفذ بعض المهام ( عرض قائمة الخدمات) في الخلفية، ثم انظر إلى قائمة وظائف الخلفية واعرض نتيجة مهمتنا ( أولئك. قائمة الخدمات).

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

بدء العمل (الحصول على الخدمة)

نحن ننظر إلى قائمة المهام التي تعمل في الخلفية

عرض نتيجة Job1

استلام-وظيفة Job1

كما ترون، لدينا الآن مهمة بالحالة " مكتمل"، أي. لقد اكتمل بالفعل ( تعمل خدمة Get-Service بسرعة).

من أجل رؤية نتيجة مهمة الخلفية، أي. Get-Service cmdlet، قمنا بتنفيذ أمر Receive-Job وقمنا بتمرير اسم الوظيفة إليه ( قيمة المعرف ممكنة أيضًا). ونتيجة لذلك، عرضنا قائمة الخدمات.

التحكم عن بعد باستخدام PowerShell

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

هناك عدة طرق للتحكم عن بعد:

  • باستخدام المعلمة -اسم الحاسوب (العديد من الفرق لديها ذلك). بمعنى آخر، يمكنك تمرير اسم الكمبيوتر الذي تريد تنفيذ الأمر عليه كمعلمة. ومن عيوب هذه الطريقة أنها تقتصر على تنفيذ أمر واحد؛
  • باستخدام الجلسات. أمر cmdlet أدخل-PSSession (جلسة تفاعلية). بهذه الطريقة، يمكنك الاتصال بجهاز كمبيوتر بعيد وسيتم تنفيذ كافة الأوامر التي تكتبها في PowerShell على الكمبيوتر البعيد بنفس الطريقة كما لو قمت بكتابة الأوامر مباشرة على الكمبيوتر البعيد. الأسلوب له أيضًا عيوب أن الجلسة تقتصر على جهاز كمبيوتر واحد؛
  • باستخدام أمر cmdlet استدعاء الأمر. باستخدام هذه الطريقة، يمكنك تشغيل الأوامر أو البرامج النصية على جهاز كمبيوتر واحد أو على عدة أجهزة كمبيوتر.

على سبيل المثال، للاتصال بجهاز كمبيوتر بعيد ( في المثال أدناه اسم الخادم) في جلسة تفاعلية، قم بتشغيل الأمر التالي:

أدخل اسم خادم PSSession

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

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

جوهر هذه الآلية هو كما يلي: تكتب مجموعة الأوامر التي تحتاجها وتحفظها كبرنامج نصي - وهذا ملف نصي بسيط بامتداد .PS1.

وبعد ذلك، لتشغيل هذا البرنامج النصي، ما عليك سوى تشغيله في PowerShell. في هذه الحالة، تحتاج إما إلى تحديد المسار الكامل لملف البرنامج النصي، أو الانتقال إلى الدليل الذي يحتوي على البرنامج النصي واستدعاءه بالاسم.

مهم!

بشكل افتراضي، يُحظر تشغيل البرامج النصية على Windows! لعرض سياسة تنفيذ البرنامج النصي، قم بتشغيل الأمر cmdlet الحصول على سياسة التنفيذ. ونتيجة لذلك، فإنه سيتم إرجاع السياسة الحالية، على سبيل المثال:

  • مقيد – تم حظر تنفيذ أي نصوص برمجية ( القيمة الافتراضية);
  • AllSigned - يُسمح بتنفيذ البرامج النصية التي تحتوي على توقيع رقمي؛
  • RemoteSigned - يُسمح بتنفيذ البرامج النصية المحلية، ويجب أن تحتوي جميع البرامج النصية التي تم تنزيلها على توقيع رقمي؛
  • غير مقيد - يُسمح بتنفيذ أي نصوص برمجية ( لا ينصح به لأنه غير آمن!).

لتمكين تشغيل البرامج النصية، يجب عليك استخدام الأمر cmdlet سياسة التنفيذمع واحدة من المعلمات المذكورة أعلاه.

على سبيل المثال، لتمكين البرامج النصية المحلية، قم بتشغيل الأمر التالي واقبل التغييرات بالضغط على Y.

Set-ExecutionPolicy RemoteSigned

يمكنك تمرير المعلمات إلى برنامج نصي، أو جعلها إلزامية، أو تعيين قيمة افتراضية.

يوفر Windows PowerShell آلية لإنشاء الوظائف الخاصة بك، والتي، مثل أوامر cmdlets المضمنة، يمكن استخدامها في PowerShell Shell.

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

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

الحصول على ChildItem Env:\PSModulePath | تنسيق الجدول - الحجم التلقائي

بمجرد وضع الوحدة التي كتبتها في دليل خاص، يمكنك الوصول إلى وظائفك كأوامر PowerShell العادية.

بيئة البرمجة النصية المتكاملة لـ Windows PowerShell (ISE)

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

يمكنك تشغيله مثل هذا:

  • في نظام التشغيل Windows 7 - ابدأ->كافة البرامج->البرامج الملحقة->Windows PowerShell ->Windows PowerShell ISE؛
  • في نظام التشغيل Windows 10 أو Windows Server 2016 - ابدأ->كافة البرامج ->دليل Windows PowerShell ( في المجموعة دبليو) -> ويندوز بوويرشيل ISE.

ملحوظة!لن يتم تشغيل ISE على نظام Windows Server المثبت في إصدار Server Core.

لقطة شاشة لبيئة البرمجة النصية المتكاملة PowerShell (ISE) في Windows Server 2016

هذا كل شيء بالنسبة لي، وآمل أن تكون المادة مفيدة لك! حظ سعيد!

يعد Windows PowerShell أحد الأدوات المهمة في أيدي مسؤول نظام Windows. يعد PowerShell أداة قوية لا ينبغي إهمالها. تهدف هذه المقالة إلى توفير مهارات Windows PowerShell الأساسية.

يعد PowerShell أكثر من مجرد غلاف لسطر الأوامر. ظهر الإصدار الأول من PowerShell في عام 2006، وكان سبب تطويره هو بدائية سطر أوامر Windows الكلاسيكي، والذي لم يسمح بتنفيذ خوارزميات معقدة.

يأتي Windows PowerShell مثبتًا مسبقًا على أنظمة التشغيل Windows 7 و8 و8.1 وWindows Server 2008 R2 و2012 R2، ويمكن أيضًا إضافته إلى Windows XP SP3 وVista وWindows Server 2003 SP2. تشبه واجهة PowerShell واجهة سطر الأوامر المألوفة.


واجهة ويندوز بوويرشيل

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

يمكن أن تكون الأوامر التي تقوم بتشغيلها في PowerShell على شكل أوامر cmdlets، ووظائف، وبرامج نصية، وملفات تنفيذية خارجية.

أوامر الأوامر هو نوع أمر جديد مدمج في PowerShell. يتم تجميع الأوامر من هذا النوع في مكتبات dll وتحميلها في عملية PowerShell عند بدء التشغيل. لا تعمل أوامر cmdlets نفسها كتطبيقات.

تتطابق أسماء أوامر Cmdlet مع النمط "فعل اسم". يصف الفعل الإجراء الذي نريد القيام به، ويصف الاسم الكائن الذي سيتم تنفيذ الإجراء عليه. على سبيل المثال، لمسح شاشة وحدة التحكم، تحتاج إلى إدخال أمر Clear-Host. يمكنك عرض الأوامر المتاحة عن طريق كتابة Get-Command في وحدة التحكم.

يمكن أن تحتوي أوامر cmdlets على معلمات. بشكل عام يبدو مثل هذا:

cmdlet_name -parameter1 -parameter2 الوسيطة1 الوسيطة2

الوسيطات هي معلمات ليس لها أسماء.

كيف تعمل؟ على سبيل المثال، لدينا الأمر dir، الذي يعرض محتويات الدليل.

مثال على الأمر dir

لنفترض أنني فقدت ملفًا معينًا. دع هذا يكون ملف تعليمات Photoshop. أتذكر أن اسم الملف يحتوي على "photoshop" وأنه ملف pdf. على ما أذكر، الملف موجود في هذا الدليل. يمكنني سرد ​​جميع الملفات الموجودة في الدليل كما في المثال أعلاه والبحث عن الملف يدويًا. أو يمكنني استخدام -filter المعلمة، والتي ستعرض فقط تلك الملفات التي تطابق وسيطة معينة. ستكون الوسيطة *photoshop*.pdf . توجد علامات نجمية حول كلمة "photoshop" لأنني لا أتذكر الاسم الدقيق للملف وأخبر PowerShell أنه يمكن أن يكون هناك أي أحرف قبل كلمة "photoshop" وبعدها. وأقول لك أيضًا أن تبحث عن ملف pdf.

لذلك، تم العثور على الملف الذي كنت تبحث عنه. في العرض العام لأوامر cmdlets، تمت الإشارة إلى أن أمر cmdlet الواحد يمكن أن يحتوي على عدة معلمات. وفي المقابل، لا تحتوي المعلمات دائمًا على وسيطات.

دعونا تعقيد مثالنا قليلا. لنفترض الآن أنني بحاجة للعثور على كتاب لكريستوفر دوجيرتي. فريق دير -filter *دوجيرتي*.pdfلم يعطني أي شيء. هذا يعني أن الكتاب ليس في هذا الدليل، لكنني أتذكر بالتأكيد أنه في مكان ما هنا، من الواضح في الدلائل الفرعية. من أجل البحث في الدلائل الفرعية، سوف نقوم بإضافة -recurse المعلمة.

سيستغرق البحث وقتا أطول قليلا، ولكن سيتم العثور على الكتاب الذي تبحث عنه.

كما ترون، لا تحتوي المعلمة -recurse على وسيطة. يمكن أن تكون المعلمات نفسها بأي ترتيب، والشيء الرئيسي هو اتباع المنطق بدقة عندما تأتي الوسيطة المطلوبة بعد المعلمة المخصصة لها. لذلك الأمر دير -filter *dougherty*.pdf -recurseسوف تعمل بالضبط نفس دير -recurse -filter *دوجيرتي*.pdf.

يمكن كتابة أسماء المعلمات بشكل مختصر، وهو مناسب تمامًا للعمل اليومي باستخدام سطر الأوامر. يجب أن يكون الاختصار مفهوما للمترجم، أي. لا تسمح بالتفسيرات المزدوجة. على سبيل المثال، يمكننا تقصير المعامل -recurse إلى -r بسيط، وتقصير -filter إلى -f سيؤدي إلى حدوث خطأ، لأن هناك أيضًا معلمة -force. في هذه الحالة، يمكنك اختصار -filter إلى -fi .

والآن لدينا فكرة عن أوامر cmdlets. المرة التالية .