Sommario:
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.
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”:
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:
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.