I 10 comandi di base di PowerShell che devi conoscere

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.

Get-Help -Name Get-ExecutionPolicy -Detailed
Getting Detailed Information of Commands

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.

Get-Help Get-Help -Full
Getting Full Information of Commands

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.

 Get-Help Get-Process -Examples
Applying -Examples to get help for 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.

Get-Process
Getting All Windows Processes

Quando un processo si blocca e causa il rallentamento del computer, interrompi il processo passando il cmdlet Get-Process al cmdlet Stop-Process. Ad esempio: esegui Get-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.

Get-History
Getting the commands history of the current session

Se preferisci visualizzare comandi specifici dalla cronologia, aggiungi il parametro -Id seguito dal numero di ID del comando dalla cronologia. Ad esempio, esegui Get-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.

Get-Service
Getting all available services on the local 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.

Get-Service A*
Getting all services that start with the letter ‘A’

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.

Start-Job -ScriptBlock {Get-Command}
Starting a background job for Get-Command

Esegui il comando Start-Job di seguito per avviare un lavoro in background per il cmdlet Get-Command. L’avvio di un lavoro in background esegue il cmdlet Get-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 cmdlet Get-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.

Set-Location C:\Users\hp\Desktop

In seguito, puoi vedere nel prompt che C:\Users\hp\Desktop è ora la directory di lavoro.

Changing Working Directory

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.

Test-Path C:\Users\hp\Desktop\NewFolder

Di seguito, puoi vedere il comando restituito un valore True poiché il percorso esiste. In caso contrario, otterrai un output False.

Testing if the path exists

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

# Crea un file Commands.html che contiene tutti i comandi PowerShell
Get-Command | ConvertTo-Html > 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.

Get-Command | Export-CSV 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?

Opening Exported Commands.csv in Microsoft Excel

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

Get-Command -Name G* -CommandType Cmdlet
Getting all cmdlets that start with the letter ‘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).

Get-Command | Select-Object -Property Definition
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/