29Aug

مدرسة المهوس: تعلم كيفية استخدام وظائف في بويرشيل

click fraud protection

بويرشيل لديها أربعة أنواع من الوظائف - وظائف الخلفية، وظائف عن بعد، ومي وظائف وظائف المجدولة.الانضمام إلينا كما نكتشف ما هي وكيف يمكننا استخدامها.

تأكد من قراءة المقالات السابقة في المسلسل:

  • تعلم كيفية أتمتة ويندوز مع بويرشيل
  • تعلم كيفية استخدام كمدليتس في بويرشيل
  • تعلم كيفية استخدام الكائنات في بويرشيل
  • تنسيق التعلم والتصفية والمقارنة في بويرشيل
  • تعلم كيفية استخدام عن بعد فيبويرشيل
  • استخدام بويرشيل للحصول على معلومات الكمبيوتر
  • العمل مع مجموعات في بويرشيل

وتنزعج لبقية سلسلة كل أسبوع.

وظائف الخلفية

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

ستارت-جوب -Name جيتفيلليست -Scriptblock{ جيت-تشيلدتيتم C: \ -Recurse}

الآن نحن أحرار في القيام بكل ما نريده داخل القذيفة بينما ينفذ هذا البرنامج النصي في الخلفية.

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

instagram viewer

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

الحصول على وظيفة -Name جيتفيلليست |ستوب-جوب

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

الحصول على وظيفة -Name جيتفيلليست |ريسيف-جوب -Keep

بمجرد الانتهاء من العمل، فمن أفضل الممارسات لإزالته.لإزالة المهمة، ببساطة الأنابيب إلى كمدليت إزالة الوظيفة.

الحصول على وظيفة -Name جيتفيلليست |ريموف-جوب

سيؤدي ذلك إلى إزالته من قائمة الوظائف التي يتم إرجاعها بواسطة جيت-جوب.

الوظائف عن بعد

قبل بضعة دروس، نظرنا في كيفية استخدام ريموتينغ لتنفيذ أوامر بويرشيل على جهاز بعيد باستخدام إنفوك-كوماند، ولكن هل تعلم أنه يمكنك أيضا استخدام إنفوك-كوماند لبدء مهمة نائية في الخلفية؟للقيام بذلك، ببساطة إضافة المعلمة -AsJob على نهاية الأمر الخاص بك:

إنفوك-كوماند -ComputerName فلاش، أفعى -Credential المسؤول -ScriptBlock{ غسي} -AsJob

كان هذا الأمر بسيط ويجب أن يكون الانتهاء من التنفيذ الآن حتىيتيح إلقاء نظرة على حالة وظائفنا.

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

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

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

جيت-جوب -Id 3 |ريسيف-جوب -Keep -ComputerName فيبر

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

الحصول على وظيفة -Id 3 -IncludeChildJob

الحصول على وظيفة -Id 5 |ريسيف-جوب -Keep

وظائف ومي

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

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

الوظائف المجدولة

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

ريجيستر-شكدولدوب -Name جيتيفنتلوغس -ScriptBlock{ جيت-إيفنتلوغ -LogName الأمن -Newest 100} -Trigger( نيو-جوبتريجر -Daily -Apm 5pm) -ScheduledJobOption( نيو-شكدولدجوبوبتيون-RunElevated)

هناك الكثير جدا يحدث في هذا الأمر، لذلك دعونا كسر عليه.

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

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

جدولةجوب

هذا كل شيء هناك.