PowerShell per principianti

Quando si lavora con PowerShell, la prima cosa con cui ci confrontiamo sono i comandi (Cmdlet).
La chiamata del comando appare così:

Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]

Aiuto

Per richiamare l'aiuto in PowerShell, si utilizza il comando Get-Help. È possibile specificare uno dei parametri: example, detailed, full, online, showWindow.

Get-Help Get-Service -full restituirà una descrizione completa del funzionamento del comando Get-Service
Get-Help Get-S* mostrerà tutti i comandi e le funzioni disponibili che iniziano con Get-S*

Inoltre, sul sito ufficiale di Microsoft è disponibile una documentazione dettagliata.

Ecco un esempio di aiuto per il comando Get-Evenlog

PowerShell per principianti

Se i parametri sono racchiusi tra parentesi quadre [], allora sono facoltativi.
Quindi, in questo esempio, il nome stesso del registro è obbligatorio, mentre il nome del parametro no. Se il tipo di parametro e il suo nome sono racchiusi insieme tra parentesi, allora questo parametro è facoltativo.

Se si guarda al parametro EntryType, si vedono valori racchiusi tra parentesi graffe. Per questo parametro possiamo usare solo valori predefiniti racchiusi tra parentesi graffe.

Le informazioni su se un parametro è obbligatorio possono essere visualizzate nella descrizione qui sotto nel campo Required. Nell'esempio sopra, l'attributo After è facoltativo, poiché accanto a Required c'è false. Successivamente, vediamo il campo Position accanto al quale è scritto Named. Ciò significa che il parametro può essere chiamato solo per nome, cioè:

Get-EventLog -LogName Application -After 2020.04.26

Poiché per il parametro LogName era indicato il numero 0 invece di Named, ciò significa che possiamo riferirci al parametro senza nome, fornendolo nella giusta sequenza:

Get-EventLog Application -After 2020.04.26

Supponiamo anche un tale ordine:

Get-EventLog -Newest 5 Application

Alias

Per poter utilizzare i comandi familiari dalla console in PowerShell ci sono gli alias (Alias).

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

Ciò significa che invece di richiamare il comando

Set-Location “D:”

possiamo usare

cd “D:”

History

Per visualizzare la cronologia delle chiamate ai comandi, puoi usare Get-History.

Eseguire il comando dalla storia Invoke-History 1; Invoke-History 2

Pulire la cronologia Clear-History

Pipeline

Il pipeline in PowerShell è quando il risultato dell'esecuzione della prima funzione viene passato alla seconda. Ecco un esempio di utilizzo del pipeline:

Get-Verb | Measure-Object

Per comprendere meglio il pipeline, prendiamo un esempio più semplice. C'è un comando

Get-Verb "get"

Se chiamiamo l'aiuto Get-Help Get-Verb -Full, vedremo che il parametro Verb accetta input da pipeline e tra parentesi è scritto ByValue.

PowerShell per principianti

Ciò significa che possiamo riscrivere Get-Verb «get» come «get» | Get-Verb.
Quindi, il risultato della prima espressione è una stringa ed essa viene passata al parametro Verb del comando Get-Verb tramite input da pipeline per valore.
Inoltre, l'input della pipeline può essere ByPropertyName. In questo caso, passeremo un oggetto che ha una proprietà con un nome simile a Verb.

Variabili

Le variabili non sono fortemente tipizzate e si definiscono con il simbolo $ davanti

$example = 4

Il simbolo > indica di inserire i dati in
Ad esempio, $example > File.txt
Con questa espressione, inseriremo i dati dalla variabile $example in un file
Analogamente al comando Set-Content -Value $example -Path File.txt

Array

Inizializzazione di un array:

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

Inizializzazione di un array vuoto:

$ArrayExample = @()

Ottenere un valore per indice:

$ArrayExample[0]

Ottenere l'intero array:

$ArrayExample

Aggiunta di un elemento:

$ArrayExample += “Third”

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

Ordinamento:

$ArrayExample | Sort

$ArrayExample | Sort -Descending

Tuttavia, l'array stesso rimane invariato con questo ordinamento. E se vogliamo avere dati ordinati nell'array, dobbiamo assegnare i valori ordinati:

$ArrayExample = $ArrayExample | Sort

Di fatto, in PowerShell non c'è un'operazione di rimozione di un elemento dall'array, ma possiamo farlo in questo modo:

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

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

Rimozione dell'array:

$ArrayExample = $null

Cicli

Sintassi dei cicli:

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

Uscita dal ciclo break.

Salta l'elemento continue.

Istruzioni condizionali

if () {} elseif () {} else

switch($someIntValue){
  1 { “Opzione 1” }
  2 { “Opzione 2” }
  default { “Non impostato” }
}

Funzione

Definizione della funzione:

function Example () {
  echo &args
}

Esecuzione della funzione:

Example “Primo argomento” “Secondo argomento”

Definizione degli argomenti nella funzione:

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

function Example ($first, $second) {}

Esecuzione della funzione:

Example -first “Primo argomento” -second “Secondo argomento”

Eccezione

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

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster