PowerShell per principianti

Quando si lavora con PowerShell, la prima cosa che incontriamo sono i comandi (cmdlet).
La chiamata al comando è simile a questa:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Aiuto

È possibile accedere alla Guida in PowerShell tramite il comando Get-Help. È possibile specificare uno dei parametri: esempio, dettagliato, completo, online, showWindow.

Get-Help Get-Service -full restituirà la descrizione completa dell'operazione del comando Get-Service
Get-Help Get-S* mostrerà tutti i comandi e le funzioni disponibili a partire da Get-S*

C'è anche una documentazione dettagliata sul sito Web ufficiale di Microsoft.

Di seguito è riportato un esempio di aiuto per il comando Get-Evenlog

PowerShell per principianti

Se i parametri sono racchiusi tra parentesi quadre [], sono facoltativi.
Cioè, in questo esempio, è richiesto il nome del registro stesso e il nome del parametro NO. Se il tipo di parametro e il relativo nome sono racchiusi tra parentesi insieme, questo parametro è facoltativo.

Se guardi il parametro EntryType, puoi vedere i valori racchiusi tra parentesi graffe. Per questo parametro, possiamo utilizzare solo valori predefiniti tra parentesi graffe.

Le informazioni sull'obbligatorietà del parametro possono essere visualizzate nella descrizione sottostante nel campo Obbligatorio. Nell'esempio precedente, l'attributo After è facoltativo perché Required è impostato su false. Successivamente, vediamo il campo Posizione opposto che dice Nome. Ciò significa che puoi fare riferimento al parametro solo per nome, ovvero:

Get-EventLog -LogName Application -After 2020.04.26

Poiché il parametro LogName aveva il numero 0 invece di Named, ciò significa che possiamo fare riferimento al parametro senza nome, ma specificandolo nella sequenza desiderata:

Get-EventLog Application -After 2020.04.26

Assumiamo questo ordine:

Get-EventLog -Newest 5 Application

Alias

In modo che possiamo usare i soliti comandi dalla console in PowerShell, ci sono alias (Alias).

Un esempio di alias per il comando Set-Location è cd.

Cioè, invece di chiamare il comando

Set-Location “D:”

possiamo usare

cd “D:”

Storia

Per visualizzare la cronologia delle chiamate di comando, puoi utilizzare Get-History

Esegui comando dalla cronologia Invoke-History 1; Richiama cronologia 2

Cancellare la cronologia

Conduttura

Una pipeline in PowerShell è quando il risultato della prima funzione viene passato alla seconda. Ecco un esempio che utilizza la pipeline:

Get-Verb | Measure-Object

Ma per comprendere meglio la pipeline, facciamo un esempio più semplice. Ho una squadra

Get-Verb "get"

Se chiami la guida Get-Help Get-Verb -Full, vedremo che il parametro Verb accetta input pipline e ByValue è scritto tra parentesi.

PowerShell per principianti

Ciò significa che possiamo riscrivere Get-Verb "get" in "get" | GetVerbo.
Cioè, il risultato della prima espressione è una stringa e viene passato al parametro Verb del comando Get-Verb tramite l'input pipline per valore.
Anche l'input della pipline può essere ByPropertyName. In questo caso, passeremo un oggetto che ha una proprietà con un nome simile Verb.

Variabili

Le variabili non sono fortemente tipizzate e sono specificate con un $ davanti

$example = 4

Il simbolo > significa inserire i dati
Ad esempio, $esempio > File.txt
Con questa espressione, inseriremo i dati dalla variabile $example in un file
Uguale a Set-Content -Value $example -Path File.txt

Array

Inizializzazione dell'array:

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

Inizializzazione array vuoto:

$ArrayExample = @()

Ottenere valore per indice:

$ArrayExample[0]

Ottieni l'intero array:

$ArrayExample

Aggiunta di un elemento:

$ArrayExample += “Third”

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

Ordina per:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Ma l'array stesso rimane invariato con questo ordinamento. E se vogliamo che l'array abbia dati ordinati, allora dobbiamo assegnare i valori ordinati:

$ArrayExample = $ArrayExample | Sort

Non c'è modo di rimuovere un elemento da un array in PowerShell, ma puoi farlo in questo modo:

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

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

Rimozione di un array:

$ArrayExample = $null

Loops

Sintassi del ciclo:

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

Esci dal ciclo di interruzione.

Salta l'elemento continua.

Dichiarazioni condizionali

if () {} elseif () {} else

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

Funzione

Definizione della funzione:

function Example () {
  echo &args
}

Lancio della funzione:

Example “First argument” “Second argument”

Definizione degli argomenti in una funzione:

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

function Example ($first, $second) {}

Lancio della funzione:

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

Eccezione

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

Fonte: habr.com

Aggiungi un commento