PowerShell per principianti

Quando lavoriamo 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

La chiamata dell'aiuto in PowerShell avviene tramite il comando Get-Help. È possibile specificare uno dei seguenti 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*.

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

Ecco un esempio di aiuto per il comando Get-Eventlog.

PowerShell per principianti

Se i parametri sono racchiusi tra parentesi quadre [], sono facoltativi.
Vale a dire che 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, quel parametro è facoltativo.

Osservando il parametro EntryType, si notano i valori racchiusi tra parentesi graffe. Per questo parametro possiamo utilizzare solo valori predefiniti racchiusi tra parentesi graffe.

Le informazioni su se un parametro è obbligatorio possono essere visualizzate nella descrizione sottostante nel campo Required. Nell'esempio sopra, l'attributo After è facoltativo, poiché di fronte a Required c'è false. Ancora, vediamo il campo Position, di fronte al quale è scritto Named. Questo significa che possiamo accedere al parametro solo per nome, ovvero:

Get-EventLog -LogName Application -After 2020.04.26

Poiché per il parametro LogName invece di Named è stato specificato il numero 0, ciò significa che possiamo accedere al parametro senza nome, indicando solo la sequenza corretta:

Get-EventLog Application -After 2020.04.26

Supponiamo anche un tale ordine:

Get-EventLog -Newest 5 Application

Alias

Affinché possiamo utilizzare i comandi familiari dalla console in PowerShell, ci sono gli alias (Alias).

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

Cioè, invece di chiamare il comando

Set-Location “D:”

possiamo utilizzare

cd “D:”

Storia

Per visualizzare la cronologia delle chiamate ai comandi, possiamo utilizzare 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

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

Get-Verb "get"

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

PowerShell per principianti

Questo significa che possiamo riscrivere Get-Verb «get» su «get» | Get-Verb.
Cioè il risultato della prima espressione è una stringa e viene passata al parametro Verb del comando Get-Verb tramite input di pipelining per valore.
Inoltre, l'input di pipelining può essere ByPropertyName. In questo caso, passeremo un oggetto che ha una proprietà con un nome simile a Verb.

Variabili

Le variabili non sono tipizzate in modo rigido e vengono definite con il simbolo $ all'inizio.

$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.
Similmente 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

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

$ArrayExample = $ArrayExample | Sort

In effetti, non esiste un modo per rimuovere un elemento da un array in PowerShell, ma è possibile 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.

Dichiarazioni Condizionali

if () {} elseif () {} else

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

Funzione

Definizione di una funzione:

function Example () {
  echo &args
}

Esecuzione della funzione:

Example “Primo argomento” “Secondo argomento”

Definizione degli argomenti in una 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