استخدام PowerShell للمستخدمين المنزليين - دليل المبتدئين

من منا لا يرغب في أن يكون ساحرًا وينطق ببضع كلمات لحدوث أشياء سحرية؟ حسنًا(Well) ، لا يمكننا أن نوضح لك كيف تكون ساحرًا ، ولكن يمكننا أن نوضح لك كيفية القيام ببعض السحر على الكمبيوتر.

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

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

هذا مهم لأن ما تعرفه عن PowerShell يمكن استخدامه على أي جهاز كمبيوتر تقريبًا الآن. من تعرف؟ قد تأخذ هذه المهارة إلى المستوى التالي والمغامرة في مهنة تكنولوجيا المعلومات(Information Technology) .

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

الجواب عالي التقنية من Microsoft هو أنه عبارة عن غلاف سطر أوامر مصمم خصيصًا لمسؤولي النظام. • يبدو(” Sounds) مخيف. لكنها ليست كذلك. هل تعتني بجهاز الكمبيوتر الخاص بك؟ نعم ، فأنت مسؤول النظام في منزلك.

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

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

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

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

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

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

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

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

كيف يمكنني استخدام بوويرشيل؟

أسهل طريقة للعمل مع PowerShell هي في بيئة البرمجة النصية المتكاملة لـ PowerShell (ISE)(PowerShell Integrated Scripting Environment (ISE)) . يمكنك العثور عليه بالنقر فوق ابدأ(Start) وكتابة بوويرشيل(powershell ise ) في شريط البحث في نظام التشغيل Windows 10(Windows 10) . يجب أن تراه كما هو موضح أدناه.

لأول مرة نستخدمه ، سنقوم بتشغيله كمسؤول(Administrator) . للقيام بذلك ، يجب أن يكون لديك أولاً حقوق المسؤول على جهاز الكمبيوتر الخاص بك. في قائمة ابدأ(Start Menu) ، انقر بزر الماوس الأيمن على PowerShell ISE ، ثم انقر فوق تشغيل كمسؤول(Run as Administrator) .

قد تحصل على نافذة منبثقة تحذيرية للتحكم في وصول المستخدم(User Access Control) ( UAC ) تسألك عما إذا كنت متأكدًا من رغبتك في القيام بذلك. انقر فوق "نعم"(Yes) .

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

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

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

في نافذة البرمجة النصية ، انسخ والصق ما يلي:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

يسمى جزء Set-ExecutionPolicy منه بأمر cmdlet (commandlet المنطوق). Cmdlets هي أشياء قوية. فكر(Think) فيها كأوامر قصيرة يمكنك منحها لـ Windows(Windows) ، وسيقوم Windows بمجموعة من الأشياء الأكثر تعقيدًا لتلبية أمرك.

سيكون القياس هو إخبار طفلك بتنظيف غرفته. قصير(Short) ودقيق. إذا كان طفلك على دراية جيدة بتنظيف الغرفة ، فسيذهبون لترتيب سريرهم ، ويضعون ملابسهم في السلة ، ويضعون ألعابهم وكتبهم على الرف ، وربما حتى ينظفوا الأرضية بالمكنسة الكهربائية. إنهم يفهمون أن cmdlet Clean-YourRoom تعني كل ذلك.

في الجزء العلوي من النافذة ، سترى رأس سهم أخضر. انقر فوق(Click) ذلك لتشغيل الأمر.

الجزء -ExecutionPolicy يخبر Set-ExecutionPolicy عن السياسة التي يجب تعيينها. إنها معلمة. إنها تقول ، "أريدك أن تعمل ضمن هذه الإرشادات وتفعل ذلك على وجه التحديد. تخبرها باستخدام السياسة المحددة لـ RemoteSigned .

ينص نهج RemoteSigned على أنه لا يجوز لـ PowerShell تنفيذ أو تشغيل أي برنامج نصي تم تنزيله من الإنترنت(Internet) ما لم يكن موقعًا بواسطة ناشر موثوق به.

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

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

استخدم PowerShell(Use PowerShell) لإنشاء مساحة(Create Space) على محرك الأقراص الثابتة(Your Hard Drive)

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

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

أي شيء أمامه علامة الدولار هو اسم متغير. فكر في الأمر كمحفظة لوضع أشياء ثمينة فيها. تذكرنا المحفظة بعلامة الدولار ، والأشياء الثمينة تبدو متغيرة ، لذلك سنتذكر ذلك أيضًا. (Wallet)نقوم بإنشاء محفظة أو متغير باسم $TempFileLocation . تخبر علامة المساواة PowerShell بما يجب وضعه في هذا المتغير.

في هذه الحالة ، نضع موقع ملفات Windows المؤقتة - C:\Users\username\AppData\Local\Temp\* . نحن نقوم بذلك لسببين ؛ إنه موقع آمن دائمًا لحذف الملفات منه ، وسنستخدمه لإخبار PowerShell بالمكان الذي يجب أن يذهب إليه لحذف الملفات.

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

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

$TempFile = Get-ChildItem $TempFileLocation -Recurse

نحن نصنع متغيرًا آخر. هذه المرة سنستخدم أمرًا للتوصل إلى شيء نضعه في متغير $TempFile .

Get-ChildItem 

شيء آخر ستلاحظه حول أوامر cmdlets مثل Get-ChildItem هو أنها قابلة للقراءة تمامًا. ترى كيف الكلمة الأولى هي فعل؟ تبدأ جميع أوامر Cmdlets(Cmdlets) بكلمات العمل ، حتى تعرف على الفور ما يفعله. ChildItem هما اسمان.

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

ما هو الأمر cmdlet الحصول على العناصر الفرعية؟ كل شيء في المتغير $TempFileLocation . سوف ينتقل PowerShell(PowerShell) إلى الموقع الذي وضعناه في $ TempFileLocation مسبقًا ونحصل(TempFileLocation) على جميع العناصر الفرعية الموجودة هناك. بعد ذلك ، ستضعهم في المتغير $TempFile .

لذا ، ما هو الجزء -Recurse ؟ هذا يخبر Get-ChildItem بتصفح(Get-ChildItem) كل شيء في هذا الموقع. لا تذهب للحصول على الملفات على الفور داخل المجلد الأصلي. إذا كانت هناك مجلدات في هذا المجلد ، فاحصل على جميع أطفالهم أيضًا وأطفالهم وما إلى ذلك. سوف نحصل عليهم جميعًا.

$TempFileCount = ($TempFile).count

نعم ، نحن بصدد إنشاء متغير ثالث يسمى $TempFileCount ، وسنضع رقمًا في هذا المتغير. أين الرقم؟ حسنًا ، ( $TempFile).count على هذا الرقم. ربما تكون قد اكتشفت أن الجزء .count سيقوم بحساب جميع الملفات التي قمنا بتخزينها للتو في $ TempFile .

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

if($TempFileCount -eq 0)

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

-Eq هو اختصار(-eq) يساوي. إنه نوع من عامل المقارنة. إنه مثل إخبار أطفالك ، "إذا كانت غرفتك نظيفة ، رائعة ، فسنقوم بشيء ما". هذا البيان يقول إذا كان الرقم الذي تم تخزينه في TempFileCount(TempFileCount) $ يساوي صفرًا الشيئ القادم.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

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

سيكتب إلى المضيف ، أو الشاشة ، "لا توجد ملفات في المجلد C: \ Users \ username \ Appdata \ Local \ Temp \ *". المعلمة في النهاية - ForegroundColor تخبر PowerShell بجعل النص أخضر. هذا يجعل من السهل التمييز بين رسالة الخطأ التي عادة ما تكون حمراء.

Else

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

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

يشير هذا إلى الانتقال إلى الموقع الحالي المخزن في $TempFile . يسمى الخط العمودي بعد الأنبوب. إنه يعمل نوعًا ما مثل أنبوب حقيقي لأنه يخبر PowerShell بتوجيه محتويات $ TempFile إلى cmdlet ، كما لو كان يتم ضخ المياه في الغسالة. ثم يقوم cmdlet Remove-Item بما يقول ؛ يزيل كل ما هو موجود في هذا الموقع.

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

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

المعلمة -Confirm:$false تمنع البرنامج النصي من السؤال عما إذا كنت تريد حقًا حذف الملف. أنت تعرف ما يفعله -Recurse . - القوة( -Force) تعني حذف هذا الشيء مهما حدث. - تم تعيين WarningAction على (-WarningAction )SilentlyContinue .

هذا يمنع البرنامج النصي من إعطائك تحذيرات حول ما تقوم بحذفه. تم ضبط -ErrorAction(-ErrorAction) على SilentlyContinue بحيث إذا كان هناك أي نوع من الخطأ في العملية ، فإنه يستمر في الصراخ.

الآن نحن في السطر الأخير.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

تمامًا مثلما فعل برنامج Write-Host في المرة الأولى ، سينتج الجملة التالية ، لذا فنحن نعرف ما حدث. سيخبرنا بعدد الملفات التي تم حذفها من المجلد الذي تمت معالجته للتو ويفعل ذلك باللون الأخضر لتسهيل اكتشافه.

لنلقي نظرة على النص بالكامل:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

يمكنك نسخ هذا ولصقه في PowerShell ISE وحفظه كشيء مثل delete-TemporaryFiles.ps1 . يمكنك أيضًا التمسك بمصطلح تسمية أوامر cmdlets الآن بعد أن تفهمها.

إذا كان الرمز لا يعمل من أجلك لسبب ما ، فيمكنك أيضًا تنزيل البرنامج النصي PowerShell الذي أنشأناه وتشغيله فقط. فقط(Just) قم بفك ضغطه أولاً لعرض ملف البرنامج النصي.

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

أين يمكنني معرفة المزيد من PowerShell؟

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

هناك الكثير من الموارد على الإنترنت(Internet) لمعرفة المزيد حول PowerShell . أفضل مكان للبدء هو مقالتنا ، "أنشئ قائمة ببرامج بدء التشغيل عبر Command Line أو PowerShell"(Generate a List of Startup Programs via Command Line or PowerShell) . ثم تحقق من هذه الموارد الأخرى:



About the author

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



Related posts