Che cos’è lo scripting di Windows PowerShell?

Punti chiave

  • PowerShell è un linguaggio di scripting che può aiutare ad automatizzare le attività del computer.
  • I cmdlet sono comandi PowerShell a funzione singola. Puoi visualizzare i comandi disponibili con “Get-Command”.
  • PowerShell è disponibile su Windows, macOS e Linux.

PowerShell è un linguaggio di scripting che può aiutarti ad automatizzare le attività del computer in modo semplice e affidabile. Scopri come usarlo per iniziare a creare script per il tuo PC Windows.

Panoramica sugli script di PowerShell

Per iniziare a creare semplici script PowerShell su Windows, devi sapere tre cose:

  • Cmdlet: comandi a funzione singola.
  • Parametri: specificano cosa, quando, dove e come dei cmdlet/comandi.
  • Pipeline: prende l’output del cmdlet e i suoi parametri e lo collega ad altri cmdlet e funzioni.

Combinando tutti e tre, puoi creare semplici script per aiutare ad automatizzare le attività.

Ecco una pipeline di esempio che mostra come combinare diversi cmdlet per realizzare un’attività:

Per eseguire questa pipeline in PowerShell, dovresti utilizzare qualcosa di simile a questo comando:

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Cmdlet in dettaglio

Come qualsiasi linguaggio di scripting, PowerShell è dotato di comandi precostruiti per manipolare oggetti ed eseguire varie attività. Questi comandi fondamentali all’interno di PowerShell sono noti come cmdlet.

  Come aprire il Pannello di controllo su Windows 11

I cmdlet (pronunciati come command-let) sono piccoli comandi a funzione singola utilizzati nell’ambiente PowerShell utilizzando l’estensione .dll. Sono pezzi di codice leggeri che vengono eseguiti più rapidamente delle funzioni a causa della loro natura compilata.

Sono disponibili migliaia di cmdlet in PowerShell. Non è necessario impararli tutti. Puoi iniziare imparando alcuni cmdlet di PowerShell di base e continuare ad apprendere durante il tuo percorso di scripting. Per visualizzare i cmdlet già installati sul computer, eseguire:

 Get-Command 

Se esamini i risultati, noterai che seguono una convenzione di denominazione verbo-sostantivo. In questo modo è più semplice comprendere cosa fa un determinato cmdlet.

Ad esempio, Get-Command fornisce un elenco di comandi disponibili in PowerShell. Get-Process ti fornisce i processi attualmente attivi e Copy-Item copia uno o più file in una directory specifica.

I cmdlet vengono inoltre forniti in bundle con un’ampia documentazione che include esempi, istruzioni per l’uso e spiegazioni della loro funzionalità.

Per saperne di più su un cmdlet specifico e su come utilizzarlo, esegui:

 Get-Help <name-of-cmdlet> 

Spiegazione dei parametri di PowerShell

I cmdlet possono accettare parametri per variare il comportamento. Quando si esegue un cmdlet o una funzione, è possibile fornire valori di parametro per specificare cosa, quando, dove e come viene eseguito ciascun comando di PowerShell.

Ad esempio, Get-Process otterrà un elenco di tutti i processi attivi nel tuo sistema operativo:

Ma cosa succede se desideri ottenere solo un processo specifico? Puoi farlo utilizzando i parametri. Ad esempio, per ottenere tutti i processi Slack, puoi utilizzare il parametro Name con il cmdlet Get-Process:

 Get-Process -Name Slack 

Vedrai quindi solo i processi con il nome “slack”:

  Come visualizzare le note adesive di Windows 10 sul Web e su Android

Alcuni parametri sono “posizionali”, il che significa che il loro nome è facoltativo. In questo caso, Get-Process -Name Slack e Get-Process Slack fanno la stessa cosa.

Ogni cmdlet accetterà diversi tipi di parametri. Utilizzare il comando Get-Help per visualizzare i parametri accettati di un cmdlet nella sezione SINTASSI.

 Get-Help Get-Process 

Vedrai un elenco di tutti i modi possibili per eseguire il cmdlet specificato:

In questo caso, il cmdlet Get-Process accetta parametri quali Nome, Id, NomeComputer, Modulo, FileVersionInfo e altri parametri comuni. I simboli qui significano:

Simbolo

Nome

Senso

Vuoto

Il parametro non accetta input

Trattino

Indica il nome del parametro

<>

Staffe angolate

Segnaposto per il testo

[]

Parentesi

Parametro che può accettare uno o più valori

{}

Bretelle

Il parametro accetta un insieme di valori

I parametri che accettano input indicheranno il tipo di dati richiesti, ad esempio una stringa, un numero intero, un valore booleano o DateTime. Ad esempio, questo:

 Get-Process [[-Name] <string[]>] 

Significa che il parametro Nome accetta uno o più valori stringa, mentre questo:

 Get-Process -Id <int[]> 

Significa che il parametro Id accetta uno o più valori interi.

L’esempio Get-Process precedente utilizzava il parametro Name per restringere i risultati. Tuttavia, se desideri restringere il campo a un processo ancora più specifico, puoi utilizzare il parametro ID, che richiede un numero intero come indicato nella sua sintassi.

 Get-Process -Id 3016 

Dovresti quindi vedere un solo processo nell’elenco:

  Come risolvere il crash di Microsoft Teams su Windows 11 e 10

Creazione di una pipeline

PowerShell tratta tutti i dati come oggetti. Per creare uno script, questi oggetti scorrono attraverso una serie di cmdlet o funzioni collegate da un simbolo pipe ( | ). Scegliere i cmdlet giusti e collegarli in una sequenza logica utilizzando la pipeline è fondamentale per uno script efficace.

Supponiamo che tu stia creando uno script per ordinare e visualizzare i cinque file che occupano la maggior parte dello spazio di archiviazione in una cartella. Esistono modi più efficaci per creare uno script di ordinamento dei file, ma la seguente riga è facile da capire:

Per fare ciò in PowerShell, utilizza una pipeline simile a questa:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Salvataggio della pipeline come script PS1

Ora che abbiamo una pipeline funzionante, puoi salvarla come file di script PS1, in modo da non dover continuare a digitarlo ogni volta che lo usi.

Il modo più semplice per creare un file PS1 è incollare lo script nel Blocco note e salvare il file con l’estensione .ps1.

Dopo aver creato il file PS1, puoi utilizzarlo in PowerShell eseguendo ./ScriptName.ps1:

Congratulazioni! Ora puoi creare script PowerShell PS1.

PowerShell è disponibile anche su Linux e macOS

PowerShell è uno dei migliori linguaggi di scripting per principianti che chiunque possa imparare. Sebbene in passato PowerShell fosse limitato solo a Windows, la versione aggiornata di PowerShell è ora disponibile anche su macOS e molte distribuzioni Linux! Ciò rende PowerShell ancora più interessante poiché puoi trasferire le tue conoscenze da Windows ad altri sistemi operativi.