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