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

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.26Poiché 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.26Supponiamo anche un tale ordine:
Get-EventLog -Newest 5 ApplicationAlias
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-ObjectPer 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.

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 = 4Il 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:
$ArrayExampleAggiunta di un elemento:
$ArrayExample += “Third”$ArrayExample += @(“Fourth”, “Fifth”)Ordinamento:
$ArrayExample | Sort$ArrayExample | Sort -DescendingTuttavia, l'array stesso rimane invariato con questo ordinamento. E se vogliamo avere dati ordinati nell'array, dobbiamo assegnare i valori ordinati:
$ArrayExample = $ArrayExample | SortDi 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 = $nullCicli
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 () {} elseswitch($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
