Come scrivere ed eseguire un file di script PowerShell su Windows 11

PowerShell è uno strumento a riga di comando sviluppato da Microsoft per automatizzare comuni compiti amministrativi. Uno script è una collezione di comandi PowerShell, memorizzati in un file di testo con estensione *.ps1. Durante l’esecuzione di uno script PowerShell, l’interprete legge il file ed esegue i comandi in sequenza.

È possibile creare uno script PowerShell utilizzando qualsiasi editor di testo (anche NotePad). Tuttavia, è consigliabile utilizzare un editor di script PowerShell. L’editor predefinito incluso in Windows è l’Ambiente di Scripting Integrato PowerShell (PowerShell ISE). Include funzioni utili come il colore del codice, il completamento del codice, il controllo della sintassi, il debug, il salvataggio automatico, la protezione da crash, ecc.

Annuncio

Microsoft ha un editor di codice gratuito multipiattaforma chiamato Visual Studio Code (VS Code), disponibile per Windows, Linux e macOS. Supporta una varietà di linguaggi di programmazione tramite estensioni che è possibile installare, tra cui PowerShell.

Un vantaggio di Visual Studio Code è che supporta le versioni più recenti di PowerShell, mentre il PowerShell ISE supporta solo fino alla versione 5.1 di PowerShell.

Come eseguire uno script PowerShell (guida rapida)

Ecco una breve panoramica su come eseguire uno script PowerShell. Il seguente metodo funziona per gli script PowerShell che non hanno parametri obbligatori e non restituiscono output al prompt dei comandi.

  1. Fare clic con il tasto destro dello script PowerShell in Esplora file.
  2. Selezionare Esegui con PowerShell dal menu contestuale.
  3. Lo script verrà eseguito con una policy di esecuzione di Bypass. La policy di esecuzione per il computer o l’utente non verrà modificata.

Per ulteriori dettagli su come scrivere ed eseguire script PowerShell, continua a leggere!

Pubblicità

Come creare script PowerShell

Ci sono un paio di modi per creare script PowerShell:

  • Con l’editor di codice multipiattaforma Visual Studio Code
  • Con il PowerShell ISE
  • O qualsiasi altro editor di testo, cioè NotePad

Creazione di script PowerShell con Visual Studio Code

Visual Studio Code non è disponibile di default su Windows, quindi deve essere scaricato dal sito web dedicato di Visual Studio. Nel nostro caso, è necessario scaricare la distribuzione per Windows, disponibile per sistemi a 64 bit, 32 bit e ARM.

Ecco i diversi passaggi da seguire dopo aver installato l’app. Prima, sarà necessario aprire Visual Studio Code dal menu Start.

Opening Visual Studio Code from the Windows 11 Start Menu

Installare l’estensione PowerShell

Aprire il menu delle estensioni facendo clic sull’icona delle estensioni mostrata nella figura sottostante, o utilizzare la scorciatoia da tastiera Ctrl + Shift + X.

Pubblicità

Open the extensions menu from the left sidebar

Digitare powershell nella casella di ricerca, selezionare l’opzione più scaricata come mostrato di seguito, assicurandoti di scaricare l’estensione fornita da Microsoft. Quindi fare clic su Installa.

Find the PowerShell extension

Una volta completata l’installazione, non verrà visualizzata alcuna conferma. Tuttavia, noterai che il pulsante Installa è stato sostituito dalle opzioni Disabilita e Disinstalla.

Disable and Uninstall options appear after installing the extension

Come creare uno script PowerShell con Visual Studio Code

Per creare un nuovo script PowerShell, vai su File > Nuovo file, o utilizza la scorciatoia da tastiera Ctrl + N.

Creating a new PowerShell script

Per specificare che il nuovo file è uno script di PowerShell, fare clic su Testo normale nella parte inferiore sinistra, oppure su Seleziona un linguaggio nel riquadro dello script. Entrambe le opzioni ti invieranno alla casella Seleziona una modalità di linguaggio. Digita powershell e seleziona PowerShell.

Specify that the new file is a PowerShell script

Questo attiverà l’Estensione di PowerShell e noterai un cambiamento nel comportamento e nelle funzionalità. Per prima cosa, noterai che l’icona accanto al nome del file cambierà in PowerShell. Inoltre, noterai che la Console di PowerShell si avvierà, ed è lì che potrai eseguire comandi e script di PowerShell.

Starting the PowerShell Console

Lo stesso risultato può essere ottenuto salvando il file con l’estensione *.ps1.

Digita i seguenti comandi nel riquadro dello script e apprezzerai i vantaggi come la colorazione, il completamento automatico dei comandi e suggerimenti sulla sintassi in azione:

Write-Host "This is a Visual Studio Code script"
Write-Host "Writing PowerShell Scripts is fun!"
How to type commands in the script pane

Nota: La terza riga è solo a scopo dimostrativo, per mostrare l’opzione di completamento del comando.

Per salvare il file, puoi utilizzare il menu File: File > Salva. Puoi anche usare la scorciatoia da tastiera Ctrl + S.

Successivamente, utilizza una posizione di facile accesso, fornisci il nome del file, assicurati di specificare *.ps1 come estensione del file, e fai clic su Salva. In questo esempio, sto salvando il file in C:\TEMP\MyVSCodeScript.ps1.

Save your file as a .ps1

L’esecuzione degli script in VS Code sarà trattata più avanti nell’articolo.

Creazione di script con Windows PowerShell ISE

Per avviare l’ISE di PowerShell, clicca sul pulsante Start (o sul pulsante Cerca) e inizia a digitare PowerShell ISE. Vedrai l’applicazione nei risultati della ricerca con diverse opzioni di apertura. È sempre consigliabile utilizzare Esegui come amministratore per assicurarti che tutti i comandi vengano eseguiti correttamente e non siano bloccati.

You need to run the PowerShell ISE as an administrator

Quindi, creiamo uno script nell’ISE di PowerShell. Scrivi le seguenti righe e, ancora, puoi notare caratteristiche utili come il color coding, l’autocompletamento dei comandi, suggerimenti di sintassi, ecc.:

Write-Host "This is a PowerShell ISE script"
Write-Host "Writing PowerShell Scripts is fun!"

 

Creating a script in the PowerShell ISE

Nota: La terza riga è solo a scopo dimostrativo, per mostrare l’opzione di completamento del comando.

Ora salviamo l’elenco di comandi come script PowerShell. Per farlo, devi fare clic sull’icona del disco rigido nella barra degli strumenti, quindi fare clic su File > Salva dal menu File. Puoi anche utilizzare il tastierino Ctrl + S.

Nella finestra di dialogo Salva con nome, scegli una cartella, fornisci un nome file, specifica l’estensione *.ps1 e fai clic su Salva. In questo esempio, sto fornendo il seguente nome: C:\TEMP\MyPowerShellISEScript.ps1.

Saving your PowerShell script

Creare script con NotePad

Non è consigliabile utilizzare un semplice editor di testo per scrivere script PowerShell, ma è una possibilità. Facciamo un esempio con NotePad

  • Apri NotePad e digita i seguenti comandi:
Write-Host "This is a Notepad script"
Write-Host "Writing PowerShell Scripts is fun!
You can write PowerShell scripts in NotePad
  • Per salvare lo script, seleziona File > Salva.
  • Nella finestra di dialogo Salva con nome, scegli una cartella e fornisci un nome file con l’estensione *.ps1. In questo esempio, sto utilizzando: C:\TEMP\MyNotepadScript.ps1.

Come eseguire script PowerShell

A PowerShell script (*.ps1 file) can be run in the PowerShell console, which recognizes the *.ps1 file type and runs the commands sequentially. You may open the script as a file in code editors like the PowerShell ISE and Visual Studio Code, and run the whole script in the console pane or run only a part of it.

Come abilitare gli script PowerShell modificando la politica di esecuzione

Le politiche di esecuzione di PowerShell sono una caratteristica di sicurezza che controlla le condizioni sotto cui PowerShell carica i file di configurazione e esegue gli script. È importante sottolineare che questa non è un sistema di sicurezza, poiché le politiche di esecuzione possono essere facilmente aggirate. Tuttavia, aiutano a proteggere gli utenti dall’esecuzione accidentale di script.

La politica di esecuzione predefinita per Windows 11 è Ristretta. Su sistemi operativi non Windows, la politica di esecuzione predefinita è Illimitata e non può essere modificata.

Per visualizzare la politica di esecuzione corrente, utilizzare il comando PowerShell Get-ExecutionPolicy.

È possibile modificare la politica di esecuzione su Windows utilizzando il cmdlet Set-ExecutionPolicy:

 Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

Le diverse politiche di esecuzione saranno discusse nel prossimo argomento.

Modifica della politica di esecuzione di PowerShell

Su Windows, è possibile impostare la politica di esecuzione per la macchina locale, l’utente corrente o il processo PowerShell.

Per elencare tutti gli ambiti disponibili, utilizzare Get-ExecutionPolicy -List.

Get-ExecutionPolicy -List

L’ordine è importante, quindi l’elemento configurato più in alto ha la precedenza. Ad esempio, se hai impostato una policy di esecuzione utilizzando una policy di gruppo, avrà la precedenza su altre.

The highest configured item takes precedence
Policy Description
Restricted The default execution policy for Windows client OSes. It does not allow ANY scripts (*.ps1 files) to be executed. Still, you may run individual commands.
RemoteSigned The default execution policy for Windows Server. It Allows running scripts that are created locally. Scripts downloaded from untrusted locations, like the Internet, e-mail, messengers, etc. must be digitally signed by a trusted publisher. You may use the command Unblock-File to allow a script to run on the system.  
Unrestricted The default execution policy for non-Windows computers, and it cannot be changed. It allows unsigned scripts to run, but it shows a warning message and asks for confirmation if scripts are coming from an untrusted location.
AllSigned It requires all scripts running on the machine to be digitally signed by a trusted publisher, no matter if they are created locally on the machine or downloaded from the Internet.
Bypass It allows all scripts to run, like Unrestricted, but no confirmation is required.
Undefined There is no execution policy set on the specified scope. If all scopes are set as undefined, then the default execution policies are applied.
The different PowerShell execution policies

Per consentire l’esecuzione dei script in PowerShell, è necessario utilizzare il comando Set-ExecutionPolicy -ExecutionPolicy <NomePolicy>.

Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

Per impostazione predefinita, questo comando applica la tua policy scelta all’ambito Macchina locale. Se desideri specificare un ambito diverso, devi utilizzare il parametro -Scope e fornire il nome dell’ambito.

Ad esempio, il seguente comando imposta la policy di esecuzione su Illimitato per l’utente corrente:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

Esecuzione di uno script con PowerShell

Per aprire la console di PowerShell, fai clic sul pulsante Start (o tasto di ricerca), digita powershell e fai clic su Esegui come amministratore.

Run the PowerShell console as an administrator

Per eseguire uno script nella console di PowerShell, puoi:

  • Utilizzare il percorso completo dello script, come: C:\TEMP\MyNotepadScript.ps1
  • Oppure utilizza solo il nome dello script, dal percorso in cui si trova il file: .\MyNotepadScript.ps1

Esecuzione di uno script PowerShell in Visual Studio Code

Per eseguire uno script in Visual Studio Code, devi innanzitutto avviare l’applicazione e aprire il file di script creato in precedenza (C:\TEMP\MyVSCodeScript.ps1).

  • Selezionare File > Apri File oppure utilizzare la scorciatoia da tastiera Ctrl + O.
  • Con lo script caricato in VS Code, è possibile eseguirlo facendo clic sul pulsante Esegui nell’angolo in alto a destra, oppure premendo F5 sul tastierino.

Lo script verrà eseguito nella finestra della console, dove si vedrà l’output dello script.

The script is being executed in the console pane

Un’altra opzione sarebbe eseguire solo una parte dello script (Esegui Selezione). Questo è spesso utile quando si sta creando lo script e si desidera confermare che parti di esso si comportino come previsto.

  • Per eseguire una selezione dello script, evidenziare la parte che si desidera eseguire.
  • Fare clic su Esegui Selezione nell’angolo in alto a destra della console, oppure premere F8 sul tastierino.

Questa volta, VS Code esegue solo le righe di codice selezionate nella finestra della console.

How to run only a part of a script

Esecuzione di uno script nell’ISE di PowerShell

L’esecuzione di script nell’ISE di PowerShell è abbastanza simile.

  • Avviare l’ISE di PowerShell.
  • Aprire lo script dalla dimostrazione precedente (in questo caso – C:\TEMP\MyPowerShellISEScript.ps1) utilizzando File > Apri, o il Apri icona dalla barra degli strumenti, o la scorciatoia da tastiera Ctrl + O.
  • Selezionare il file dello script e fare clic su Apri.

Per eseguire l’intero script, utilizzare il pulsante Esegui sulla barra degli strumenti o premere F5 sul tastierino. Questo eseguirà il file dello script nella finestra della console, restituendo il risultato.

Running a script in the PowerShell ISE

Se è necessario eseguire solo una parte dello script, evidenzia la sezione e seleziona Esegui Selezione dalla barra degli strumenti, oppure premi F8 sulla tua tastiera. Di nuovo, PowerShell ISE eseguirà solo le righe di codice selezionate.

You can also execute only part of the script

Esecuzione di uno script PowerShell dalla Command Prompt

Se i file *.ps1 sono interpretati da PowerShell, la Command Prompt (CMD) non può lavorare direttamente con gli script PowerShell. Se desideri eseguire uno script PowerShell in CMD, dovrai eseguirlo chiamando il processo PowerShell con il parametro -File, come mostrato di seguito:

PowerShell -File C:\TEMP\MyNotepadScript.ps1.

Conclusione

Gli script PowerShell sono un ottimo modo per automatizzare compiti ripetitivi. Segui la regola generale: “Se devi fare qualcosa più di una volta, scriptalo,” e non puoi sbagliare!

Articolo correlato:

Source:
https://petri.com/how-to-write-and-run-a-powershell-script-file-on-windows-11/