PowerShell للمبتدئين

عند العمل مع PowerShell ، فإن أول شيء نواجهه هو الأوامر (Cmdlets).
يبدو استدعاء الأمر كما يلي:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

المساعدة

يتم الوصول إلى التعليمات في PowerShell باستخدام أمر Get-Help. يمكن تحديد أحد المعلمات: مثال ، مفصل ، كامل ، متصل ، showWindow.

سيعيد Get-Help Get-Service -full الوصف الكامل لعملية أمر Get-Service
Get-Help Get-S * سيعرض جميع الأوامر والوظائف المتاحة بدءًا من Get-S *

هناك أيضًا وثائق مفصلة على موقع Microsoft الرسمي.

فيما يلي مثال للمساعدة لأمر Get-Evenlog

PowerShell للمبتدئين

إذا كانت المعلمات محاطة بأقواس مربعة [] ، فهي اختيارية.
هذا هو ، في هذا المثال ، اسم السجل نفسه مطلوب ، واسم المعلمة لا. إذا كان نوع المعامل واسمه محاطين بأقواس معًا ، فإن هذا المعامل اختياري.

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

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

Get-EventLog -LogName Application -After 2020.04.26

نظرًا لأن معلمة LogName تحتوي على الرقم 0 بدلاً من Named ، فهذا يعني أنه يمكننا الرجوع إلى المعلمة بدون اسم ، ولكن عن طريق تحديدها في التسلسل المطلوب:

Get-EventLog Application -After 2020.04.26

لنفترض هذا الترتيب:

Get-EventLog -Newest 5 Application

الاسم المستعار

حتى نتمكن من استخدام الأوامر المعتادة من وحدة التحكم في PowerShell ، هناك أسماء مستعارة (الاسم المستعار).

مثال على الاسم المستعار لأمر Set-Location هو cd.

هذا هو ، بدلا من استدعاء الأمر

Set-Location “D:”

يمكننا ان نستخدم

cd “D:”

تاريخنا

للاطلاع على محفوظات مكالمات الأوامر ، يمكنك استخدام Get-History

تنفيذ الأمر من التاريخ Invoke-History 1 ؛ استدعاء التاريخ 2

تاريخ واضح

خط أنابيب

خط الأنابيب في بوويرشيل هو عندما يتم تمرير نتيجة الوظيفة الأولى إلى الثانية. فيما يلي مثال باستخدام خط الأنابيب:

Get-Verb | Measure-Object

ولكن لفهم خط الأنابيب بشكل أفضل ، دعنا نأخذ مثالًا أبسط. لدي فريق

Get-Verb "get"

إذا اتصلت بـ Get-Help Get-Verb -Full help ، فسنرى أن معلمة الفعل تأخذ إدخال خط الأنابيب وأن ByValue مكتوب بين قوسين.

PowerShell للمبتدئين

هذا يعني أنه يمكننا إعادة كتابة Get-Verb "get" إلى "get" | GetVerb.
أي أن نتيجة التعبير الأول عبارة عن سلسلة ويتم تمريرها إلى معلمة الفعل لأمر Get-Verb عبر إدخال خط الأنابيب حسب القيمة.
يمكن أيضًا أن يكون إدخال خط الأنابيب ByPropertyName. في هذه الحالة ، سنمرر كائنًا له خاصية تحمل اسمًا مشابهًا فعل.

المتغيرات

لا يتم كتابة المتغيرات بدقة ويتم تحديدها بعلامة $ في المقدمة

$example = 4

الرمز> يعني إدخال البيانات
على سبيل المثال ، $ example> File.txt
باستخدام هذا التعبير ، سنضع البيانات من المتغير $ example في ملف
مثل Set-Content -Value $ example -Path File.txt

المصفوفات

تهيئة الصفيف:

$ArrayExample = @(“First”, “Second”)

تهيئة صفيف فارغ:

$ArrayExample = @()

الحصول على القيمة بالمؤشر:

$ArrayExample[0]

احصل على المجموعة الكاملة:

$ArrayExample

إضافة عنصر:

$ArrayExample += “Third”

$ArrayExample += @(“Fourth”, “Fifth”)

الترتيب حسب:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

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

$ArrayExample = $ArrayExample | Sort

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

$ArrayExample = $ArrayExample | where { $_ -ne “First” }

$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }

إزالة مصفوفة:

$ArrayExample = $null

الحلقات

بناء جملة الحلقة:

for($i = 0; $i -lt 5; $i++){}

$i = 0
while($i -lt 5){}

$i = 0
do{} while($i -lt 5)

$i = 0
do{} until($i -lt 5)

ForEach($item in $items){}

اخرج من حلقة الفاصل.

تخطي عنصر المتابعة.

عبارات شرطية

if () {} elseif () {} else

switch($someIntValue){
  1 { “Option 1” }
  2 { “Option 2” }
  default { “Not set” }
}

المسمى الوظيفي

تعريف الوظيفة:

function Example () {
  echo &args
}

إطلاق الوظيفة:

Example “First argument” “Second argument”

تحديد وسيطات في دالة:

function Example () {
  param($first, $second)
}

function Example ($first, $second) {}

إطلاق الوظيفة:

Example -first “First argument” -second “Second argument”

استثناء

try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}

المصدر: www.habr.com

إضافة تعليق