الصفحة الرئيسية » howto » Geek School تعلم كيفية أتمتة Windows مع PowerShell

    Geek School تعلم كيفية أتمتة Windows مع PowerShell

    في هذه الطبعة من Geek School ، سنساعدك على فهم لغة البرمجة القوية PowerShell المبنية في Windows ، ومفيدة للغاية في بيئة تقنية المعلومات.

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

    المقدمة

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

    يرجى ملاحظة أن هذه السلسلة تعتمد على PowerShell 3 ، والتي تأتي مع Windows 8 و Server 2012. إذا كنت تقوم بتشغيل Windows 7 ، الرجاء تنزيل تحديث PowerShell 3 قبل المتابعة.

    تلبية وحدة التحكم و ISE

    هناك طريقتان للتفاعل مع PowerShell خارج منطقة الجزاء ، ووحدة التحكم وبيئة البرمجة المتكاملة - المعروفة أيضًا باسم ISE. لقد تحسن ISE بشكل كبير من الإصدار البشع الذي يتم شحنه مع PowerShell 2 ويمكن فتحه بالضغط على تركيبة لوحة المفاتيح Win + R لإحضار مربع تشغيل ، ثم كتابة powerhell_ise والضغط على enter.

    كما يمكنك أن ترى ISE الرياضية وجهة نظر الانقسام بحيث يمكنك بسرعة السيناريو بينما لا تزال قادرة على رؤية النتيجة في النصف السفلي من ISE. يمكن أيضًا استخدام النصف السفلي من ISE ، حيث تتم طباعة نتائج النص البرمجي ، كموجه REPL - يشبه إلى حد كبير موجه الأوامر. وأخيراً أضاف V3 ISE دعماً للتطفل في كل من جزء النص البرمجي بالإضافة إلى وحدة التحكم التفاعلية.

    بدلاً من ذلك ، يمكنك التفاعل مع PowerShell باستخدام PowerShell Console ، وهو ما سأستخدمه لمعظم هذه السلسلة. تتصرف وحدة التحكم PowerShell كثيرًا مثل موجه الأوامر - يمكنك ببساطة إدخال الأوامر وتبث النتائج. لفتح وحدة تحكم Windows PowerShell ، اضغط مرة أخرى على تركيبة لوحة المفاتيح Win + R لفتح مربع تشغيل واكتب powershell ثم اضغط على enter.

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

    باستخدام نظام المساعدة

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

    التحديث مساعدة

    تهانينا على تشغيل أمر PowerShell الأول! والحقيقة هي أن الأمر Update-Help يحتوي على خيارات أكثر بكثير من مجرد تشغيله ، ورؤيتهم سنحتاج إلى عرض المساعدة للأمر. لعرض التعليمات الخاصة بأمر ما ، يمكنك ببساطة تمرير اسم الأمر الذي تريد المساعدة فيه إلى معلمة Name في أمر Get-Help ، على سبيل المثال:

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

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

    للإجابة على السؤال الثاني ، هناك صيغة معينة تساعد في متابعة الملفات وهنا هي:

    • أقواس مربعة حول اسم معلمة ونوعها تعني أنها معلمة اختيارية وسيعمل الأمر على ما يرام بدونها.
    • تعني الأقواس المربعة حول اسم المعلمات أن المعلمات هي معلمة موازية.
    • يخبرك الشيء الموجود إلى يمين المعلمة في الأقواس المعقوفة بنوع البيانات الذي تتوقعه المعلمة.

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

    Get-Help -Name Update-Help -Full

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

    Get-Help -Name * service *

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

    الأمان

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

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

    ثانيًا ، لا يمكنك تشغيل البرامج النصية من shell عن طريق كتابة اسم البرنامج النصي فقط ، يجب عليك تحديد المسار الكامل للبرنامج النصي. لذلك إذا أردت تشغيل برنامج نصي على محرك الأقراص C ، فسيتعين عليك كتابة:

    C: \ runme.ps1

    أو إذا كنت بالفعل في جذر محرك الأقراص C ، يمكنك استخدام ما يلي:

    .\ runme.ps1

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

    • محدد: هذا هو التكوين الافتراضي في PowerShell. يعني هذا الإعداد أنه لا يمكن تشغيل أي برنامج نصي ، بصرف النظر عن توقيعه. الشيء الوحيد الذي يمكن تشغيله في PowerShell مع هذا الإعداد هو أمر فردي.
    • AllSigned: يسمح هذا الإعداد بتشغيل البرامج النصية في PowerShell. يجب أن يكون للبرنامج النصي توقيع رقمي مرتبط من ناشر موثوق. سيكون هناك مطالبة قبل تشغيل البرامج النصية من ناشرين موثوق بهم.
    • RemoteSigned: يسمح هذا الإعداد بتشغيل البرامج النصية ، ولكنه يتطلب أن يكون للبرامج النصية وملفات التكوين التي يتم تنزيلها من الإنترنت توقيع رقمي مرتبط من ناشر موثوق. لا يلزم تسجيل البرامج النصية التي يتم تشغيلها من الكمبيوتر المحلي. لا توجد مطالبات قبل تشغيل البرنامج النصي.
    • مطلق: يسمح هذا بتشغيل البرامج النصية غير الموقعة ، بما في ذلك كافة البرامج النصية وملفات التكوين التي تم تنزيلها من الإنترنت. سيتضمن ذلك ملفات من Outlook و Messenger. الخطر هنا هو تشغيل البرامج النصية دون أي توقيع أو أمان. لقد أكدنا أنك لن تقوم أبداً بهذا الإعداد.

    لمعرفة ما هي سياسة التنفيذ الحالية لديك ، افتح وحدة تحكم PowerShell واكتب:

    الحصول على لExecutionPolicy

    بالنسبة لهذه الدورة التدريبية ومعظم الظروف الأخرى ، تعد سياسة RemoteSigned هي الأفضل ، لذا عليك المضي قدمًا وتغيير سياستك باستخدام ما يلي.

    ملاحظة: يجب تنفيذ ذلك من وحدة تحكم PowerShell مرتفعة.

    Set-ExecutionPolicy RemoteSigned

    هذا كل شيء لهذا الوقت الناس ، أراك غدا لبعض المرح أكثر PowerShell.


    إخلاء المسؤولية: المصطلح المناسب لأمر PowerShell هو أمر cmdlet ، ومن الآن فصاعدًا سنستخدم هذه المصطلحات الصحيحة. لقد شعرت أنه من الأنسب أن نطلق عليها الأوامر الخاصة بهذه المقدمة.


    إذا كان لديك أي أسئلة ، يمكنك تغرد لي @ taybgibb ، أو مجرد ترك تعليق.