Hai mai provato a scrivere del codice PowerShell e sei rimasto bloccato? Non preoccuparti più! Uno dei modi migliori per diventare bravi in PowerShell è capire le basi. Conoscere alcuni comandi PowerShell di base può renderti un professionista e automatizzare le attività amministrative in modo più efficiente.
In questo tutorial, imparerai i cmdlet di base di PowerShell che devi conoscere per rendere la tua esperienza con PowerShell più interessante.
Prerequisiti
Questo tutorial sarà una dimostrazione pratica, ma non ha molti prerequisiti. Se vuoi seguirci, qualsiasi sistema (Windows o Linux) con PowerShell 5.1 o superiore funzionerà. Anche se i comandi sono mostrati utilizzando Windows PowerShell, gli esempi seguenti funzionano in PowerShell 7+ multi-piattaforma.
Ottenere informazioni di aiuto sui comandi con Get-Help
Hai mai scritto del codice come un capo senza ottenere aiuto? Beh, ci sarà sempre bisogno di aiuto mentre scrivi codice. Che tu stia eseguendo codice o comandi in un ambiente a riga di comando, il cmdlet Get-Help
è molto utile.
Cominciamo questo tutorial imparando come funziona il cmdlet Get-Help
.
Il cmdlet Get-Help
ti offre le guide necessarie per utilizzare qualsiasi comando in modo efficace senza ricevere errori. Consideralo come la documentazione per ciascuno dei comandi di PowerShell.
Apri PowerShell come amministratore, e esegui il comando Get-Help
di seguito per visualizzare informazioni dettagliate (-Detailed
) su un comando, come il cmdlet Get-ExecutionPolicy
.

Invece di solo informazioni dettagliate, forse desideri visualizzare informazioni complete su un cmdlet. In tal caso, aggiungi il parametro -Full
nel comando Get-Help
invece.
Esegui il codice sottostante per ottenere le informazioni complete (-Full
) sullo stesso cmdlet Get-Help
.

Forse hai ancora bisogno di più esempi per evitare errori durante l’esecuzione del comando. In tal caso, aggiungi il parametro -Examples
per vedere esempi di scrittura di un comando.
Esegui il comando Get-Help
di seguito per ottenere esempi (-Examples
) su come puoi utilizzare il cmdlet Get-Process
.

Ottieni i processi del computer con Get-Process
Ti ricordi il Windows Task Manager che mostra tutti i tuoi processi, servizi, applicazioni e tutto il resto? Bene! Il cmdlet Get-Process
è un cmdlet di base ma essenziale che ti dà accesso a tutti i processi del tuo computer in pochi passaggi senza aprire il Task Manager.
Esegui il seguente comando per ottenere un elenco di tutti i processi di sistema nel formato tabellare.

Quando un processo si blocca e causa il rallentamento del computer, interrompi il processo passando il cmdlet
Get-Process
al cmdletStop-Process
. Ad esempio: eseguiGet-Process -Id 1252 | Stop-Process
, dove-Id 1252
specifica l’ID del processo che desideri interrompere.
Ottieni la cronologia della sessione di PowerShell con Get-History
Potrebbe esserci la necessità di controllare i comandi recenti, come verificare se il comando recente che hai eseguito è corretto o se hai effettivamente eseguito un comando. Ma PowerShell ha un registro dei comandi? Sì! Il cmdlet Get-History
restituisce un oggetto di tutti i comandi recenti nella sessione PowerShell corrente.
Esegui il comando qui sotto per ottenere un elenco di tutti i comandi recentemente eseguiti nella tua sessione corrente.

Se preferisci visualizzare comandi specifici dalla cronologia, aggiungi il parametro
-Id
seguito dal numero di ID del comando dalla cronologia. Ad esempio, eseguiGet-History -Id 2
per vedere il secondo comando nella cronologia.
Visualizzazione dei servizi di sistema con Get-Service
Come il cmdlet Get-Process
, PowerShell ti consente anche di visualizzare tutti i servizi in esecuzione nel tuo sistema. Il cmdlet Get-Service
ti consente di visualizzare tutti i servizi, che potrebbero essere un server di database o un’applicazione che controlla automaticamente la luminosità dello schermo del tuo computer.

Esegui il comando seguente per ottenere un elenco di tutti i servizi nel tuo sistema in formato tabella. Con questo comando, puoi visualizzare anche i servizi fermi.
Forse stai cercando servizi che iniziano con un carattere specifico. In tal caso, l’aggiunta di un carattere jolly (*) farà al caso tuo.

Esegui il comando Get-Service
di seguito, passando la prima lettera e l’asterisco (A*
) dei servizi che desideri visualizzare. Aggiungere il carattere jolly ti consente di filtrare tutti i servizi che non iniziano con la lettera ‘A’.
Esecuzione di lavori in background con Start-Job
Scrivere codice può diventare fastidioso se c’è ancora molto da scrivere, ma un singolo comando ci mette un’eternità. Nessun problema! PowerShell fornisce un cmdlet per eseguire lavori in background nella tua sessione. Il cmdlet Start-Job
fornisce un ambiente PowerShell per eseguire codice o comandi come lavoro in background senza interazione dell’utente.

Esegui il comando
Start-Job
di seguito per avviare un lavoro in background per il cmdletGet-Command
. L’avvio di un lavoro in background esegue il cmdletGet-Command
senza visualizzare l’output sulla tua riga di comando.Perché stai usando lavori in background, come verifichi se un lavoro è ancora in esecuzione o completato? Esegui il cmdletGet-Job
per ottenere tutti i lavori nella tua sessione.
Cambiare le cartelle di lavoro con Set-Location
Ci sono momenti in cui è necessario cambiare directory, ad esempio quando si esegue uno script o un programma da una posizione specifica. Ma come si cambiano le directory? Lascia che il cmdlet Set-Location
ti aiuti con questo. Il cmdlet Set-Location
imposta la directory di lavoro corrente sulla directory che specifici in un comando.
Esegui il codice qui sotto per impostare la directory di lavoro corrente su C:\Users\hp\Desktop. Cambia hp
con il nome utente del tuo computer.
In seguito, puoi vedere nel prompt che C:\Users\hp\Desktop è ora la directory di lavoro.

Verifica dell’esistenza dei percorsi tramite Test-Path
PowerShell potrebbe visualizzare un bug se stai cercando di accedere a un file che non esiste. Come evitarlo? Il cmdlet Test-Path
ti consente di verificare se un percorso esiste o meno, con la sua sintassi intuitiva.
Ora, crea una cartella sul Desktop, chiamandola NewFolder.
Esegui il comando Test-Path
qui sotto, seguito dal percorso che preferisci testare. Per questo esempio, il comando verifica se il percorso C:\Users\hp\Desktop\NewFolder esiste.
Di seguito, puoi vedere il comando restituito un valore True poiché il percorso esiste. In caso contrario, otterrai un output False.

Convertire l’oggetto PowerShell in HTML con ConvertTo-HTML
Se preferisci una forma organizzata per i tuoi dati, converti i tuoi dati in HTML con il cmdlet ConvertTo-Html
. Fondamentalmente, il comando accetta il file di output che desideri convertire e il nome del file con cui desideri salvarlo.
Esegui il comando seguente per raccogliere l’elenco di tutti i comandi PowerShell (Get-Command
) in memoria e convertire (ConvertTo-Html
) l’elenco in un file HTML chiamato Command.html
.
Il file HTML viene salvato sul tuo Desktop poiché hai precedentemente cambiato la directory di lavoro. Per salvare il file HTML in un’altra posizione, specifica il percorso completo. Ad esempio:
Get-Command | ConvertTo-HTML > C:\Temp\Commands.html
Esportare gli oggetti PowerShell in CSV con Export-CSV
Se pensi che un report in formato CSV sia migliore invece di HTML, utilizza il cmdlet Export-CSV
. Simile al cmdlet ConvertTo-Html
, il cmdlet Export-CSV
ti consente di esportare i dati in un file CSV.
Esegui il comando sottostante per raccogliere un elenco di comandi PowerShell (Get-Command
) ed esporta l’elenco come file CSV (Export-CSV
) chiamato Commands.csv
.
Come nel cmdlet ConvertTo-Html, puoi specificare un percorso di esportazione per il file CSV in questo modo:
Get-Command | Export-CSV C:\Temp\Commands.csv
Apri il file Commands.csv, e vedrai qualcosa di simile a quanto segue. Niente male, vero?

Visualizzazione di tutti i comandi disponibili di PowerShell con Get-Command
Il último comando PowerShell nell’elenco è il cmdlet Get-Command
. Il cmdlet Get-Command
elenca fondamentalmente tutti i comandi di PowerShell disponibili in un formato tabellare. Ma come hai visto negli esempi precedenti, sai che il Get-Command
può fare molto di più.
Forse vuoi elencare i cmdlet o gli alias selettivamente. In tal caso, aggiungi il parametro -CommandType
al cmdlet Get-Command
per filtrare l’output per il tipo di comando che specifici. Il valore del parametro -CommandType
può essere Alias
, Cmdlet
, o Function
.
Esegui il comando Get-Command
di seguito per elencare solo i cmdlet (-CommandType Cmdlet
) con nomi che iniziano con ‘G’ (-Name G*
).

Un altro modo per filtrare l’output di Get-Command
è passarlo al cmdlet Select-Object
. Come sai, l’oggetto restituito dal cmdlet Get-Command
è in formato tabella. In quella tabella, i nomi delle colonne rappresentano le proprietà che puoi selezionare dall’oggetto.
Esegui il comando Get-Command
qui sotto per raccogliere un elenco di tutti i comandi PowerShell e filtrare la visualizzazione per mostrare la proprietà di definizione di ciascun comando (Select-Object -Property Definition
).

Conclusione
Questo tutorial ti ha fornito una guida completa sull’esecuzione di comandi di base di PowerShell. A questo punto, dovresti sapere come utilizzare ampiamente i pipe e eseguire comandi evitando di bloccarti nella codifica in qualsiasi momento.
Ora, come vorresti ampliare questa nuova conoscenza? Forse imparare come scrivere comandi su più righe negli script di PowerShell senza combinare pasticci?
Source:
https://adamtheautomator.com/basic-powershell-commands/