Get-Help, Get-Command, Get-Member
I tre cmdlet per imparare PowerShell da soli: trovare comandi, leggerne la documentazione ed esplorare gli oggetti.
Convenzione dei nomi
I cmdlet hanno il formato Verbo-Sostantivo: Get-Process, Stop-Service, New-Item. I verbi comuni sono Get, Set, New, Remove, Start, Stop, Restart, Test, Export, Import.
Get-Command: trovare comandi
Get-Command
Get-Command *service*
Get-Command -Verb Get -Noun *Net*
Get-Command -Module NetTCPIP
Get-Command -CommandType Cmdlet
Get-Command notepad
(Get-Command Get-Process).Source
Get-Help: leggere la documentazione
Get-Help Get-Process
Get-Help Get-Process -Examples
Get-Help Get-Process -Detailed
Get-Help Get-Process -Full
Get-Help Get-Process -Online
Get-Help Get-Process -Parameter Name
Get-Help about_*
Get-Help about_Operators
Aggiorna i file della guida (una tantum, da amministratore):
Update-Help
-Examples è quasi sempre la parte più utile.
Get-Member: esplorare gli oggetti
In PowerShell ogni comando restituisce oggetti, non testo. Get-Member mostra proprietà e metodi disponibili.
Get-Process | Get-Member
Get-Service | Get-Member -MemberType Property
"testo" | Get-Member
Get-Date | Get-Member
Per vedere tutti i valori di un oggetto:
Get-Process -Name explorer | Select-Object *
Get-Process -Name explorer | Format-List *
Alias
Get-Alias
Get-Alias ls
Get-Alias -Definition Get-ChildItem
| Alias | Cmdlet |
|---|---|
ls, dir, gci | Get-ChildItem |
cd, sl | Set-Location |
cat, gc, type | Get-Content |
cp, copy | Copy-Item |
mv, move | Move-Item |
rm, del | Remove-Item |
ps, gps | Get-Process |
? | Where-Object |
% | ForEach-Object |
select | Select-Object |
Negli script è preferibile usare i nomi completi, più leggibili.
Provare senza eseguire
Remove-Item .\cartella -Recurse -WhatIf
Remove-Item .\cartella -Recurse -Confirm
-WhatIfmostra cosa succederebbe senza farlo-Confirmchiede conferma a ogni passo
Funzionano con quasi tutti i cmdlet che modificano qualcosa.
Parametri comuni
| Parametro | Significato |
|---|---|
-Verbose | Output dettagliato |
-ErrorAction | Comportamento in caso di errore (Stop, Continue, SilentlyContinue) |
-WhatIf | Simula |
-Confirm | Chiede conferma |
-OutVariable | Salva l'output in una variabile |
Scorciatoie da tastiera
Tabcompleta comandi, parametri e percorsi (premilo più volte per scorrere le opzioni)Ctrl+Spaziomostra tutte le possibilitàF7mostra la cronologia dei comandiGet-HistoryeInvoke-History 5per rieseguire
Versione di PowerShell
$PSVersionTable
$PSVersionTable.PSVersion
powershell.exe è Windows PowerShell 5.1 (incluso in Windows); pwsh.exe è PowerShell 7+ (si installa a parte, multipiattaforma).