PowerShell pentru începători

Când lucrăm cu PowerShell, primul lucru cu care ne confruntăm sunt comenzile (Cmdlet).
Apelul comenzii arată astfel:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Ajutor

Apelul ajutoarelor în PowerShell se face cu ajutorul comenzii Get-Help. Se pot specifica unul dintre parametrii: example, detailed, full, online, showWindow.

Get-Help Get-Service -full va returna o descriere completă a funcționării comenzii Get-Service.
Get-Help Get-S* va arăta toate comenzile și funcțiile disponibile care încep cu Get-S*.

De asemenea, pe site-ul oficial Microsoft există o documentație detaliată.

Iată un exemplu de ajutor pentru comanda Get-EventLog.

PowerShell pentru începători

Dacă parametrii sunt încadrați în paranteze [], atunci aceștia sunt opționali.
Asta înseamnă că, în acest exemplu, numele jurnalului este obligatoriu, iar numele parametrului nu este. Dacă tipul parametrului și numele său sunt încadrați împreună în paranteze, atunci acest parametru este opțional.

Dacă ne uităm la parametrul EntryType, putem observa valorile care sunt încadrați în acolade. Pentru acest parametru, putem folosi doar valorile predefinite din acolade.

Informația despre faptul dacă un parametru este obligatoriu o putem vedea în descrierea de mai jos în câmpul Required. În exemplul de mai sus, atributul After este opțional, deoarece în fața câmpului Required scrie false. Apoi vedem câmpul Position, în fața căruia este scris Named. Aceasta înseamnă că putem accesa parametrul doar după nume, adică:

Get-EventLog -LogName Application -After 2020.04.26

Deoarece pentru parametrul LogName, în loc de Named, a fost specificat numărul 0, asta înseamnă că putem accesa parametrul fără nume, specificându-l în ordinea dorită:

Get-EventLog Application -After 2020.04.26

Să presupunem că avem și această ordine:

Get-EventLog -Newest 5 Application

Alias

Pentru a putea folosi comenzile obișnuite din consolă în PowerShell, există aliasuri (Alias).

Exemplul aliasului pentru comanda Set-Location este cd.

Adică, în loc să apelăm comanda

Set-Location “D:”

putem folosi

cd “D:”

Istoric

Pentru a vedea istoricul apelurilor de comenzi, putem folosi Get-History.

Executați comanda din istoric Invoke-History 1; Invoke-History 2.

Ștergeți istoric Clear-History.

Pipeline

Pipeline în PowerShell este atunci când rezultatul executării primei funcții este transmis celei de-a doua. Iată un exemplu de utilizare a pipeline-ului:

Get-Verb | Measure-Object

Dar pentru a înțelege mai bine pipeline-ul, să luăm un exemplu mai simplu. Există comanda

Get-Verb "get"

Dacă apelăm ajutorul Get-Help Get-Verb -Full, vom vedea că parametrul Verb acceptă input din pipeline și în paranteză scrie ByValue.

PowerShell pentru începători

Aceasta înseamnă că putem rescrie Get-Verb „get” ca „get” | Get-Verb.
Deci, rezultatul primei expresii este un șir de caractere și el este transmis ca parametru Verb comenzii Get-Verb prin input-ul de tip pipline.
De asemenea, input-ul de tip pipline poate fi ByPropertyName. În acest caz, vom transmite un obiect care are o proprietate cu un nume similar cu Verb.

Variabile

Variabilele nu sunt strict tipizate și se stabilesc cu simbolul $ înainte de nume.

$example = 4

Simbolul > înseamnă a plasa datele în
De exemplu, $example > File.txt
Prin această expresie, vom plasa datele din variabila $example în fișier.
Asemănător comenzii Set-Content -Value $example -Path File.txt

Arrays

Inițializarea unui array:

$ArrayExample = @(“Primul”, “Al Doilea”)

Inițializarea unui array gol:

$ArrayExample = @()

Obținerea valorii prin index:

$ArrayExample[0]

Obținerea întregului array:

$ArrayExample

Adăugarea unui element:

$ArrayExample += “Al Treilea”

$ArrayExample += @(“Al Patrulea”, “Al Cincilea”)

Sortare:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Dar array-ul în sine rămâne neschimbat la o astfel de sortare. Și dacă dorim ca array-ul să conțină date sortate, trebuie să facem o atribuție a valorilor sortate:

$ArrayExample = $ArrayExample | Sort

De fapt, nu există o metodă de eliminare a unui element din array în PowerShell, dar putem face acest lucru în felul următor:

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

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

Eliminarea array-ului:

$ArrayExample = $null

Loops

Sintaxa buclelor:

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){}

Ieşirea din buclă break.

Sărind un element continue.

Conditional Statements

if () {} elseif () {} else

switch($someIntValue){
  1 { “Opțiunea 1” }
  2 { “Opțiunea 2” }
  default { “Neconfigurat” }
}

Funcție

Definirea unei funcții:

function Example () {
  echo &args
}

Executarea funcției:

Example “Primul argument” “Al Doilea argument”

Definirea argumentelor într-o funcție:

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

function Example ($first, $second) {}

Executarea funcției:

Example -first “Primul argument” -second “Al Doilea argument”

Exception

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

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster