Installazione di PowerShell in Windows

Esistono diversi modi per installare PowerShell in Windows. Ogni metodo di installazione è progettato per supportare diversi scenari e flussi di lavoro. Scegliere il metodo più adatto alle proprie esigenze.

  • Winget - Modo consigliato per installare PowerShell nei client Windows
  • Pacchetto MSI - Scelta ottimale per i server Windows e gli scenari di distribuzione aziendali
  • Pacchetto ZIP - Modo più semplice per eseguire il "side load" o installare più versioni
    • Usare questo metodo per i sistemi basati su Windows Nano Server, Windows IoT e Arm
  • Strumento globale .NET : una buona scelta per gli sviluppatori .NET che installano e usano altri strumenti globali
  • Pacchetto di Microsoft Store: un modo semplice per installare utenti casuali di PowerShell, ma presenta limitazioni

Nota

I comandi di installazione in questo articolo sono destinati alla versione stabile più recente di PowerShell. Per installare una versione diversa di PowerShell, modificare il comando in modo che corrisponda alla versione necessaria. I collegamenti seguenti consentono di accedere alla pagina della versione per ogni versione nel repository di PowerShell in GitHub.

I collegamenti per il download per ogni pacchetto sono disponibili nella sezione Asset della pagina Versione. È possibile che la sezione Assets sia compressa, quindi potrebbe essere necessario fare clic per espanderla.

Winget, il Gestione pacchetti Windows, è uno strumento da riga di comando che consente agli utenti di individuare, installare, aggiornare, rimuovere e configurare applicazioni nei computer client Windows. Questo strumento è l'interfaccia client per il servizio Gestione pacchetti Windows. Lo winget strumento da riga di comando è incluso in Windows 11 e versioni moderne di Windows 10 per impostazione predefinita come Programma di installazione app.

Nota

Per un elenco dei requisiti di sistema e le istruzioni di installazione, vedere la documentazione di winget. Winget non è disponibile in Windows Server 2022 o versioni precedenti.

Windows Server 2025 Preview Build 26085 e versioni successive include winget solo per Windows Server con Esperienza desktop. Per altre informazioni, vedere Annuncio di Windows Server Preview Build 26085.

I comandi seguenti possono essere usati per installare PowerShell tramite i pacchetti winget pubblicati:

Cercare la versione più recente di PowerShell

winget search Microsoft.PowerShell
Name               Id                           Version   Source
-----------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.4.2.0   winget
PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.2   winget

Installare PowerShell o PowerShell Preview usando il id parametro

winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

Nota

Nei sistemi Windows che usano il processore X86 o X64 installa winget il pacchetto MSI. Nei sistemi che usano il processore winget Arm64 installa il pacchetto di Microsoft Store (MSIX). Per altre informazioni, vedere Installazione da Microsoft Store.

Installazione del pacchetto MSI

Per installare PowerShell in Windows, usare i collegamenti seguenti per scaricare il pacchetto di installazione da GitHub.

Dopo il download, fare doppio clic sul file del programma di installazione e seguire le istruzioni.

Il programma di installazione crea un collegamento nel menu Start di Windows.

  • Per impostazione predefinita, il pacchetto viene installato in $env:ProgramFiles\PowerShell\<version>
  • È possibile avviare PowerShell tramite il menu Start o $env:ProgramFiles\PowerShell\<version>\pwsh.exe

Nota

PowerShell 7.4 installa in una nuova directory ed esegue side-by-side con Windows PowerShell 5.1. PowerShell 7.4 è un aggiornamento sul posto che rimuove le versioni precedenti di PowerShell 7. Le versioni di anteprima di PowerShell possono essere installate side-by-side con altre versioni di PowerShell.

  • PowerShell 7.4 è installato in $env:ProgramFiles\PowerShell\7
  • La cartella $env:ProgramFiles\PowerShell\7 viene aggiunta a $env:PATH

Se è necessario eseguire PowerShell 7.4 side-by-side con altre versioni, usare il metodo di installazione ZIP per installare l'altra versione in una cartella diversa.

Supporto per Microsoft Update in PowerShell 7.2 e versioni successive

PowerShell 7.2 e versioni successive include il supporto per Microsoft Update. Quando si abilita questa funzionalità, si otterranno gli aggiornamenti più recenti di PowerShell 7 nel flusso di gestione tradizionale di Microsoft Update (MU), indipendentemente dal fatto che si tratti di Windows Update for Business, WSUS, Microsoft Endpoint Configuration Manager o la finestra di dialogo interattiva mu in Impostazioni.

Il pacchetto MSI di PowerShell include le opzioni della riga di comando seguenti:

  • USE_MU - Questa proprietà ha due valori possibili:
    • 1 (impostazione predefinita): consente di acconsentire esplicitamente all'aggiornamento tramite Microsoft Update, WSUS o Configuration Manager
    • 0 - Non acconsentire esplicitamente all'aggiornamento tramite Microsoft Update, WSUS o Configuration Manager
  • ENABLE_MU
    • 1(impostazione predefinita) - Acconsentire esplicitamente all'uso di Microsoft Update per il Aggiornamenti automatico
    • 0 - Non acconsentire esplicitamente all'uso di Microsoft Update

Nota

L'abilitazione degli aggiornamenti potrebbe essere stata impostata in un'installazione precedente o in una configurazione manuale. L'uso ENABLE_MU=0 di non rimuove le impostazioni esistenti. Inoltre, questa impostazione può essere sovrasvolta dalle impostazioni di Criteri di gruppo controllate dall'amministratore.

Per altre informazioni, vedere Domande frequenti su Microsoft Update per PowerShell.

Installare il pacchetto MSI dalla riga di comando

I pacchetti MSI possono essere installati dalla riga di comando per consentire agli amministratori di distribuire i pacchetti senza interazione dell'utente. Il pacchetto MSI include le proprietà seguenti per controllare le opzioni di installazione:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL - Questa proprietà controlla l'opzione per aggiungere l'elemento Open PowerShell al menu di scelta rapida in Esplora risorse.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL - Questa proprietà controlla l'opzione per aggiungere l'elemento Run with PowerShell al menu di scelta rapida in Esplora risorse.
  • ENABLE_PSREMOTING - Questa proprietà controlla l'opzione per abilitare la comunicazione remota di PowerShell durante l'installazione.
  • REGISTER_MANIFEST - Questa proprietà controlla l'opzione per la registrazione del manifesto di Registrazione eventi di Windows.
  • ADD_PATH - Questa proprietà controlla l'opzione per l'aggiunta di PowerShell alla variabile di ambiente PATH di Windows.
  • DISABLE_TELEMETRY - Questa proprietà controlla l'opzione per disabilitare i dati di telemetria di PowerShell impostando la POWERSHELL_TELEMETRY_OPTOUT variabile di ambiente.
  • INSTALLFOLDER - Questa proprietà controlla la directory di installazione. Il valore predefinito è $env:ProgramFiles\PowerShell\. Si tratta del percorso in cui il programma di installazione crea la sottocartella con controllo delle versioni. Non è possibile modificare il nome della sottocartella con controllo delle versioni.
    • Per le versioni correnti, la sottocartella con controllo delle versioni è 7
    • Per le versioni di anteprima, la sottocartella con controllo delle versioni è 7-preview

L'esempio seguente illustra come installare PowerShell in modo invisibile all'utente con tutte le opzioni di installazione abilitate.

msiexec.exe /package PowerShell-7.4.2-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

Per un elenco completo delle opzioni della riga di comando per Msiexec.exe, vedere Opzioni della riga di comando.

Installazione del pacchetto ZIP

Sono disponibili archivi ZIP di file binari di PowerShell per abilitare scenari di distribuzione avanzati. Scaricare uno degli archivi ZIP seguenti dalla pagina di versione corrente.

A seconda della modalità di download del file, potrebbe essere necessario sbloccare il file con il cmdlet Unblock-File. Decomprimere il contenuto nella posizione preferita ed eseguire pwsh.exe da tale posizione. A differenza dell'installazione dei pacchetti MSI, l'installazione dell'archivio ZIP non verifica i prerequisiti. Per il corretto funzionamento della comunicazione remota su WSMan, verificare che siano soddisfatti i prerequisiti.

Usare questo metodo per installare la versione di PowerShell basata su ARM in computer come Microsoft Surface Pro X. Per ottenere i risultati ottimali, installare PowerShell nella cartella $env:ProgramFiles\PowerShell\7.

Installare come strumento globale .NET

Se .NET Core SDK è già installato, è possibile installare PowerShell come strumento globale .NET.

dotnet tool install --global PowerShell

Il programma di installazione dello strumento DotNet aggiunge $HOME\.dotnet\tools alla variabile di ambiente $env:PATH. La shell attualmente in esecuzione non dispone tuttavia del parametro $env:PATH aggiornato. È possibile avviare PowerShell da una nuova shell digitando pwsh.

Installazione da Microsoft Store

PowerShell può essere installato da Microsoft Store. È possibile trovare la versione di PowerShell nel sito di Microsoft Store o nell'applicazione Store in Windows.

Vantaggi del pacchetto di Microsoft Store:

  • Aggiornamenti automatici integrati in Windows
  • Si integra con altri meccanismi di distribuzione software come Intune e Configuration Manager
  • Può essere installato nei sistemi Windows usando processori x86, x64 o Arm64

Limitazioni note

Per impostazione predefinita, i pacchetti di Windows Store vengono eseguiti in una sandbox dell'applicazione che virtualizza l'accesso ad alcuni percorsi del file system e del Registro di sistema. Le modifiche apportate ai percorsi di file e registro virtualizzati non vengono mantenute all'esterno della sandbox dell'applicazione.

Questa sandbox blocca tutte le modifiche alla cartella radice dell'applicazione. Le impostazioni di configurazione a livello di sistema archiviate in $PSHOME non possono essere modificate. inclusa la configurazione WSMAN. In questo modo si impedisce alle sessioni remote di connettersi alle installazioni di PowerShell basate su Store. Sono supportate le configurazioni a livello di utente e la comunicazione remota SSH.

I comandi seguenti devono scrivere in $PSHOME. Questi comandi non sono supportati in un'istanza di Microsoft Store di PowerShell.

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

Per altre informazioni, vedere Informazioni sull'esecuzione in Windows di app desktop in pacchetto.

Modifiche per PowerShell 7.2

A partire da PowerShell 7.2, il pacchetto PowerShell è ora esente dalla virtualizzazione dei file e del Registro di sistema. Le modifiche apportate ai percorsi di file e registro virtualizzati ora vengono mantenute all'esterno della sandbox dell'applicazione. Tuttavia, le modifiche apportate alla cartella radice dell'applicazione sono ancora bloccate.

Importante

Per il funzionamento di questa esenzione, è necessario essere in esecuzione in Windows build 1903 o versione successiva.

Installazione di una versione di anteprima

Versioni di anteprima dell'installazione di PowerShell 7 in $env:ProgramFiles\PowerShell\7-preview modo che possano essere eseguite side-by-side con versioni non di anteprima di PowerShell. PowerShell 7.4 è la versione di anteprima successiva.

Aggiornamento di un'installazione esistente

Per ottenere i risultati ottimali durante l'aggiornamento, è necessario usare lo stesso metodo di installazione usato al momento dell'installazione di PowerShell. Se non si è certi della modalità di installazione di PowerShell, è possibile controllare il valore della $PSHOME variabile, che punta sempre alla directory contenente PowerShell in cui è in esecuzione la sessione corrente.

  • Se il valore è $HOME\.dotnet\tools, PowerShell è stato installato con lo strumento globale .NET.
  • Se il valore è $Env:ProgramFiles\PowerShell\7, PowerShell è stato installato come pacchetto MSI o con Winget in un computer con un processore X86 o x64.
  • Se il valore inizia con $Env:ProgramFiles\WindowsApps\, PowerShell è stato installato come pacchetto di Microsoft Store o con Winget nel computer con un processore ARM.
  • Se il valore è diverso, è probabile che PowerShell sia stato installato come pacchetto ZIP.

Se è stato installato tramite il pacchetto MSI, tali informazioni vengono visualizzate anche nella Pannello di controllo Programmi e funzionalità.

Per determinare se PowerShell può essere aggiornato con Winget, eseguire il comando seguente:

winget list --name PowerShell --upgrade-available

Se è disponibile un aggiornamento, l'output indica la versione più recente disponibile.

Nota

Durante l'aggiornamento, PowerShell non eseguirà l'aggiornamento da una versione LTS a una versione non LTS. Viene aggiornato solo alla versione più recente di LTS, ad esempio, dalla versione 7.2.3 alla versione 7.2.19. Per eseguire l'aggiornamento da una versione LTS a una versione stabile più recente o alla successiva LTS, è necessario installare la nuova versione con l'identità del servizio gestito per tale versione.

Quando la versione installata non è una versione LTS, PowerShell esegue l'aggiornamento alla versione stabile più recente.

Distribuzione in Windows 10 IoT Enterprise

Windows 10 IoT Enterprise include Windows PowerShell, che è possibile usare per distribuire PowerShell 7.

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.4.2-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # The download location is local to the device.
    # There should be enough  space for the zip file and the unzipped contents.

# Create PowerShell session to target device
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# Copy the ZIP package to the device
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.4.2-win-arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.4.2-win-arm64
# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new
# endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

Quando si configura la comunicazione remota di PowerShell, viene visualizzato un messaggio di errore e viene disconnesso dal dispositivo. PowerShell deve riavviare WinRM. È ora possibile connettersi all'endpoint di PowerShell 7 nel dispositivo.


# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.4.2

Distribuzione in Windows 10 IoT Core

Windows 10 IoT Core aggiunge Windows PowerShell se si include la funzionalità IOT_POWERSHELL, che è possibile usare per distribuire PowerShell 7. I passaggi definiti in precedenza per Windows 10 IoT Enterprise sono validi anche per IoT Core.

Per aggiungere la versione più recente di PowerShell nell'immagine di spedizione, usare il comando Import-PSCoreRelease per includere il pacchetto nell'area di lavoro e aggiungere la funzionalità OPENSRC_POWERSHELL all'immagine.

Nota

Per l'architettura ARM64, Windows PowerShell non viene aggiunto quando si include IOT_POWERSHELL. Quindi l'installazione basata su zip non funziona. È necessario usare il Import-PSCoreRelease comando per aggiungerlo nell'immagine.

Distribuzione in Nano Server

Queste istruzioni presuppongono che Nano Server sia un sistema operativo "headless" con una versione di PowerShell già in esecuzione. Per altre informazioni, vedere la documentazione Nano Server Image Builder.

È possibile distribuire i file binari di PowerShell usando due metodi diversi.

  1. Offline: montare il disco rigido virtuale di Nano Server e decomprimere il contenuto del file ZIP nella posizione prescelta all'interno dell'immagine montata.
  2. Online: trasferire il file ZIP in una sessione di PowerShell e decomprimerlo nella posizione prescelta.

In entrambi i casi, è necessario il pacchetto di versione ZIP di Windows x64. Eseguire i comandi all'interno di un'istanza "Administrator" di PowerShell.

Distribuzione offline di PowerShell

  1. Usare l'utilità ZIP preferita per decomprimere il pacchetto in una directory all'interno dell'immagine montata di Nano Server.
  2. Smontare l'immagine e riavviarla.
  3. Connettersi all'istanza predefinita di Windows PowerShell.
  4. Seguire le istruzioni per creare un endpoint di comunicazione remota usando un'altra tecnica di istanza.

Distribuzione online di PowerShell

Distribuire PowerShell in Nano Server seguendo questa procedura.

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.4.2-win-x64.zip'
# Connect to the built-in instance of Windows PowerShell
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# Copy the file to the Nano Server instance
Copy-Item $zipfile c:\ -ToSession $session
# Enter the interactive remote session
Enter-PSSession $session
# Extract the ZIP file
Expand-Archive -Path C:\PowerShell-7.4.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

Perché la comunicazione remota si basi su WS-Management, seguire le istruzioni seguenti per creare un endpoint di comunicazione remota tramite un'altra tecnica di istanza.

Comunicazione remota di PowerShell

PowerShell supporta il protocollo di comunicazione remota di PowerShell (PSRP) tramite WS-Management e SSH. Per altre informazioni, vedi:

Per abilitare la comunicazione remota di PowerShell su WSMan nelle versioni precedenti di Windows, è necessario soddisfare i prerequisiti seguenti.

  • Installare Windows Management Framework (WMF) 5.1 (se necessario). Per altre informazioni su WMF, vedere la panoramica su Windows Management Framework.
  • Installare Universal C Runtime nelle versioni di Windows precedenti a Windows 10. È disponibile tramite download diretto o Windows Update. Questo pacchetto è già installato nei sistemi con patch complete.

Versioni di Windows supportate

La tabella seguente è un elenco delle versioni di PowerShell e delle versioni di Windows in cui sono supportate. Queste versioni sono supportate fino a quando la versione di PowerShell non raggiunge la fine del supporto o la versione di Windows raggiunge la fine del supporto.

  • L'icona Supportata indica che la versione del sistema operativo o di PowerShell è ancora supportata
  • L'icona Non più supportato indica che la versione di PowerShell non è più supportata in tale versione del sistema operativo
  • L'icona In Test indica che non è stato completato il test di PowerShell nel sistema operativo
  • L'icona Non supportato indica che la versione del sistema operativo o di PowerShell non è supportata
  • Quando sia la versione del sistema operativo che la versione di PowerShell hanno un'icona Supportata , tale combinazione è supportata
Windows 7.2 (LTS-previous) 7.3 7.4 (LTS-current)
Supportata Windows Server 2016, 2019 o 2022 Supportato Supportato Supportata
Supportata Windows Server Nano (1809 o versione successiva) Supportato Supportato Supportata
Supportata Windows 11 Supportato Supportato Supportata
Supportata Windows 10 1607+ Supportato Supportato Supportata

Nota

Il supporto per una versione specifica di Windows è determinato dai criteri relativi al ciclo di vita supporto tecnico Microsoft. Per altre informazioni, vedi:

PowerShell è supportato in Windows per le architetture del processore seguenti.

Windows 7.2 (LTS-current) 7.3 7.4 (LTS-current)
Windows Server 2016+ x64, x86 x64, x86 x64, x86
Windows Server Core 2016+ x64, x86 x64, x86 x64, x86
Nano Server versione 1803+ x64 x64 x64
Windows 11 Client x64, Arm64 x64, Arm64 x64, Arm64
Client Windows 10 x64, x86, Arm64 x64, x86, Arm64 x64, x86, Arm64

È possibile controllare la versione usata eseguendo winver.exe.

Supporto per l'installazione

Microsoft supporta i metodi di installazione in questo documento. Potrebbero essere disponibili altri metodi di installazione di terze parti da altre origini. Anche se questi strumenti e metodi possono funzionare, Microsoft non può supportare tali metodi.