Installazione di PowerShell in Windows

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

  • Pacchetto MSI: la scelta migliore per l'utente di tutti i giorni.
  • Pacchetto ZIP: il modo più semplice per installare più versioni o usare in una pipeline CI/CD. Questo è il metodo di installazione Windows nano server, Windows ioT e sistemi basati su Arm.
  • Strumento globale .NET: una scelta ottimale per gli sviluppatori .NET che installano e usano altri strumenti globali.
  • Winget: per gli utenti che preferiscono usare il nuovo Gestione pacchetti Windows.
  • Microsoft Store pacchetto: un modo semplice per l'installazione per utenti occasionali di PowerShell, ma con limitazioni.

Nota

I comandi di installazione in questo articolo sono relativi 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 indirizzano l'utente alla pagina della versione per ogni versione nel repository di PowerShell GitHub.

I collegamenti di 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.

Installazione del pacchetto MSI

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

Dopo aver scaricato, 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.2 viene installato in una nuova directory ed eseguito side-by-side con Windows PowerShell 5.1. PowerShell 7.2 è un aggiornamento sul posto che sostituisce PowerShell 7.0 e versione inferiore.

  • PowerShell 7.2 è installato in $env:ProgramFiles\PowerShell\7
  • La cartella $env:ProgramFiles\PowerShell\7 viene aggiunta a $env:PATH
  • Le cartelle per le versioni rilasciate in precedenza vengono eliminate

Se è necessario eseguire PowerShell 7.2 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

PowerShell 7.2 include il supporto per Microsoft Update. Quando si abilita questa funzionalità, si otterrà gli aggiornamenti più recenti di PowerShell 7 nel flusso di gestione tradizionale di Microsoft Update (MU), che si tratta di Windows Update for Business, WSUS, Microsoft Endpoint Configuration Manager o della finestra di dialogo mu interattiva in Impostazioni.

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

  • USE_MU - Questa proprietà ha due valori possibili:
    • 1 (impostazione predefinita): acconsente esplicitamente all'aggiornamento tramite Microsoft Update, WSUS o Gestione configurazione
    • 0 - Non acconsentire esplicitamente all'aggiornamento Microsoft Update, WSUS o Gestione configurazione
  • ENABLE_MU
    • 1 (impostazione predefinita): acconsente esplicitamente all'uso Microsoft Update per Aggiornamenti automatici
    • 0 - Non acconsentire esplicitamente all'uso Microsoft Update

Nota

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

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

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 l'aggiunta della voce al menu di scelta Open PowerShell rapida in Windows Explorer.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL- Questa proprietà controlla l'opzione per l'aggiunta della voce al menu di scelta Run with PowerShell rapida in Windows Explorer.
  • 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 Windows registrazione eventi.

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

msiexec.exe /package PowerShell-7.2.1-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=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 della 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 è già installato il .NET Core SDK, è possibile installare PowerShell come strumento globale .NET.

dotnet tool install --global PowerShell

Il programma di installazione dello strumento DotNet aggiunge $env:USERPROFILE\.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.

Installare PowerShell con Winget

Winget, il Gestione pacchetti Windows, è uno strumento da riga di comando che consente agli sviluppatori di individuare, installare, aggiornare, rimuovere e configurare applicazioni nei Windows 10 computer. Questo strumento è l'interfaccia client per il servizio Gestione pacchetti Windows.

Nota

Vedere la documentazione di winget per un elenco di requisiti di sistema e istruzioni di installazione.

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.2.0.0  winget
Powershell Preview Microsoft.PowerShell.Preview 7.2.0.10 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

Installazione da Microsoft Store

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

Vantaggi del pacchetto di Microsoft Store:

  • Aggiornamenti automatici incorporati direttamente in Windows
  • Si integra con altri meccanismi di distribuzione software come Intune e Gestione configurazione

Limitazioni note

Per impostazione predefinita, i 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 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. Non è possibile modificare le impostazioni di configurazione a livello di sistema archiviate in $PSHOME, 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'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 esentato dalla virtualizzazione di file e registro. Le modifiche ai percorsi di file e registro virtualizzati vengono ora mantenute all'esterno della sandbox dell'applicazione. Tuttavia, le modifiche alla cartella radice dell'applicazione sono ancora bloccate.

Importante

Per il funzionamento di questa esenzione Windows è necessario eseguire la build 1903 o successiva.

Installazione di una versione di anteprima

Le versioni di anteprima di PowerShell 7 vengono installate in in modo che possano essere eseguite $env:ProgramFiles\PowerShell\7-preview side-by-side con versioni non di anteprima di PowerShell. PowerShell 7.3 sarà la prossima versione di anteprima.

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. Ciascun metodo di installazione installa PowerShell in un percorso diverso. Se non si è certi di come sia stato installato PowerShell, è possibile confrontare il percorso installato con le informazioni del pacchetto in questo articolo. Se PowerShell è stato installato tramite il pacchetto MSI, tali informazioni sono visualizzate in Programmi e funzionalità nel Pannello di controllo.

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.2.1-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.2.1-win-Arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.2.1-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 che 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.2.1

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. 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 Windows versione ZIP 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.2.1-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.2.1-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, vedere:

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

  • Installare la 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 contiene un elenco delle versioni di PowerShell e delle versioni 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 non raggiunge la fine del supporto.

  • Un ✅ indica che la versione del sistema operativo o di PowerShell è ancora supportata
  • Un ❌ indica che la versione del sistema operativo o di PowerShell non è supportata
  • Oggetto 🟡 indica che la versione di PowerShell non è più supportata in tale versione del sistema operativo
  • Quando sia la versione del sistema operativo che la versione di PowerShell ✅, questa combinazione è supportata
Windows 7.0 (LTS) 7.1 7.2 (LTS-current) 7.3 (anteprima)
✅ Windows Server 2016, 2019 o 2022
✅ Windows Server 2012 R2
✅ Windows Server Core (2012 R2 o versione successiva)
✅ Windows Server Nano (1809 o versione successiva)
❌ Windows Server 2012 🟡 🟡
❌ Windows Server 2008 R2 🟡 🟡
✅ Windows 11
✅ Windows 10 1607+
✅ Windows 8.1

Nota

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

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

Windows 7.0 (LTS) 7.1 7.2 (LTS-current) 7.3 (anteprima)
Nano Server versione 1803+ x64, Arm32 x64 x64 x64
Windows Server 2012 R2+ x64, x86 x64, x86 x64, x86 x64, x86
Windows Server Core 2012 R2+ x64, x86 x64, x86 x64, x86 x64, x86
Windows 10 o 11 Client x64, x86 x64, x86, Arm64 x64, x86, Arm64 x64, x86, Arm64
Windows 8.1 Client x64, x86 x64, x86 x64, x86 x64, x86

È possibile controllare la versione in uso 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. Sebbene questi strumenti e metodi possano funzionare, Microsoft non è in grado di supportare tali metodi.