دليلك للبدء في استخدام الأفعال المعتمدة في PowerShell

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

في هذا البرنامج التعليمي، ستتعلم الأفعال المعتمدة في PowerShell من خلال سلسلة من الأمثلة.

انطلق مباشرة وقم برفع مستوى برمجتك في PowerShell!

متطلبات أساسية

يتضمن هذا البرنامج التعليمي عروضًا توضيحية عملية. إذا كنت ترغب في متابعة، تأكد من أن لديك نظام يعمل بـ PowerShell 5.1 أو الإصدار الأحدث. يستخدم هذا البرنامج التعليمي Windows 11 مع PowerShell 7.

استرجاع قائمة من الأفعال المعتمدة في PowerShell

في PowerShell ، تعتبر cmdlets أوامرًا صغيرة وظيفية واحدة تقوم بتنفيذ أفعال محددة في بيئة PowerShell.

يحتوي كل cmdlet في PowerShell على اسم فريد يتبع تنسيق زوج الفعل والاسم حيث:

  • الجزء الخاص بالفعل من الاسم يصف الإجراء الذي يقوم به cmdlet. بعض الأفعال الشائعة المستخدمة في PowerShell هي كما يلي:
Verb Function
Get Retrieves information.
Set Changes or updates settings.
New Creates something new.
Remove Deletes or removes something.
  • الجزء الخاص بالاسم يحدد الكيان أو الكائن الذي يتم تنفيذ الإجراء عليه، الهدف الذي يتعين اتخاذ إجراء عليه. يصف الاسم عادة الفئة أو نوع الكائن الذي يتفاعل معه cmdlet، مثل أمر، عملية، خدمة، أو ملف.

لرؤية جميع الأفعال المعتمدة التي يمكنك استخدامها في النص الخاص بك:

قم بتنفيذ الأمر التالي Get-Verb للحصول على قائمة كاملة من الأفعال المعتمدة في PowerShell.

Get-Verb

الإخراج أدناه يعرض فقط بعض الأفعال التي يمكنك استخدامها في النص الخاص بك.

Retrieving a complete list of approved verbs

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

Get-Verb re*

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

Narrowing down the list of approved verbs

إنشاء موارد جديدة عبر الفعل New

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

ولكن في هذا المثال، ستقوم بإنشاء مورد جديد، على وجه التحديد مستخدم جديد، على النحو التالي:

قم بتنفيذ الأمر التالي New-LocalUser لإنشاء مستخدم جديد يُدعى جون سميث بكلمة مرور (Password123) وتعيين الحساب لا ينتهي أبدًا (-AccountNeverExpires).

New-LocalUser -Name "John Smith" -AccountNeverExpires -Password (ConvertTo-SecureString -AsPlainText "Password123" -Force
Creating a new resource (user account) via the New verb

استرجاع معلومات المورد عبر فعل Get

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

لاسترجاع معلومات المورد عبر فعل Get:

قم بتشغيل الأمر Get-LocalUser أدناه للحصول على معلومات حول مستخدم محلي معين (John Smith).

Get-LocalUser -Name "John Smith"

أدناه، تُظهر النتيجة حساب المستخدم جون سميث هو مُمكَّن (نشط).

Retrieving resource information via the Get verb

تعديل الموارد الحالية عبر فعل Set

تخيل أنك لاحظت شيئًا غير صحيح بعد رؤية إحدى معلومات مواردك. كيف يمكنك تعديل مورد موجود؟ لا داعي للقلق! الفعل المعتمد في PowerShell، الفعل Set، يسمح لك بإجراء تغييرات على الموارد الحالية.

بدلاً من إعادة إنشاء الموارد، يتيح لك الفعل Set التعديل عن طريق تعديل خصائصها أو تكويناتها.

لتعديل الموارد الحالية عبر فعل Set:

تنفيذ الأوامر التالية لتعيين قيمة $myVariable إلى Hello وتعديل قيمة $myVariable إلى Hello, World!. هذه الأوامر لا تقدم إخراجًا، ولكن ستتحقق من التغييرات في الخطوة التالية.

# قم بتعريف متغير المورد
$myVariable = "Hello"

# قم بتعديل قيمة متغير المورد الحالي
Set-Variable -Name myVariable -Value "Hello, World!"

الآن، قم بتشغيل الأمر Get-Variable أدناه لاسترجاع معلومات حول موردك ($myVariable).

Get-Variable -Name myVariable

كما هو موضح أدناه، يظهر الإخراج اسم المتغير وقيمته.

Retrieving information about a resource

تحفيز الإجراءات أو استدعاء الأوامر عبر فعل Invoke

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

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

لرؤية كيفية عمل تحفيز الإجراءات عبر الفعل Invoke:

1. قم بتنفيذ الأمر Invoke-Expression التالي لاستدعاء أمر Get-Date، الذي يتيح لك استرجاع التاريخ والوقت الحالي.

Invoke-Expression -Command "Get-Date"

الناتج أدناه يظهر تنفيذًا ناجحًا لأمر Get-Date عبر الفعل Invoke.

Triggering a command via the Invoke verb

2. بعد ذلك، قم بإنشاء ملف نصي لسكربت PowerShell (على سبيل المثال، InvokeVerbDemo.ps1) باستخدام محرر الأكواد الخاص بك، واملأ الكود التالي.

هذا الكود يعرض (Write-Host) رسالة ترحيبية ويستدعي الأمر Get-Service لعرض قائمة بجميع الخدمات في نظامك.

# عرض رسالة ترحيبية دافئة
Write-Host "Welcome to the Invoke Example!"

# استدعاء الأمر Get-Service
Invoke-Command -ScriptBlock { Get-Service }

3. الآن، قم بتشغيل الأوامر التالية لاستدعاء (Invoke-Expression) سكربت PowerShell الخاص بك (InvokeVerbDemo.ps1). استبدل قيمة المتغير $scriptPath بمسار ملف السكربت الخاص بك.

$scriptPath = "C:\PowerShellScripts\InvokeVerbDemo.ps1"
Invoke-Expression -Command $scriptPath

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

Invoking a script via the Invoke verb

4. بدلاً من الأوامر فقط، اكتب وظيفة قابلة لإعادة الاستخدام (مثل Invoke-MyTask) التي يمكنك استدعائها في أي وقت، كما هو موضح أدناه. بشكل أساسي، تعزز الوظائف قابلية الصيانة وإعادة الاستخدام في النصوص الخاصة بـ PowerShell الخاصة بك.

في هذا المثال، تقوم وظيفة Invoke-MyTask بتجميع الأوامر التالية عند استدعائها:

  • عرض (Write-Host) السلسلة تنفيذ MyTask... على وحدة التحكم.
  • استرجاع قائمة جميع العمليات (Get-Process) واختيار فقط (Select-Object) الخصائص Name و CPU لكل عملية.
# تحديد وظيفة مخصصة باستخدام فعل Invoke
function Invoke-MyTask {
    # مهمةك المخصصة تذهب هنا
    Write-Host "Executing MyTask..."
    Get-Process | Select-Object Name, CPU
}
Defining a PowerShell function

5. أخيرًا، قم بتنفيذ الأمر أدناه لاستدعاء وظيفتك (Invoke-MyTask).

Invoke-Expression -Command Invoke-MyTask

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

Invoking a function

التحقق من الموارد عبر فعل الاختبار

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

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

قم بتنفيذ الشيفرة أدناه للاختبار (Test-Path) مما إذا كان ملف معين موجودًا (C:\MyFolder\example.txt) في المسار المحدد $filePath، واطبع رسالة اعتمادًا على النتيجة.

# قم بتعريف مسار الملف.
$filePath = "C:\MyFolder\example.txt"

# اختبر ما إذا كان الملف موجودًا، واطبع رسالة اعتمادًا على النتيجة
if (Test-Path $filePath) {
    Write-Host "The file exists at $filePath."
}
else {
    Write-Host "The file does not exist at $filePath."
}
Validating a resource via the Test verb

الاستنتاج

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

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

Source:
https://adamtheautomator.com/powershell-approved-verbs/