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.

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.26Deoarece 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.26Să presupunem că avem și această ordine:
Get-EventLog -Newest 5 ApplicationAlias
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-ObjectDar 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.

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 = 4Simbolul > î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:
$ArrayExampleAdăugarea unui element:
$ArrayExample += “Al Treilea”$ArrayExample += @(“Al Patrulea”, “Al Cincilea”)Sortare:
$ArrayExample | Sort$ArrayExample | Sort -DescendingDar 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 | SortDe 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 = $nullLoops
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 () {} elseswitch($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
