ARGOMENTO
about_Execution_Policies
DESCRIZIONE BREVE
Descrive i criteri di esecuzione di Windows PowerShell e la relativa
modalità di gestione.
DESCRIZIONE DETTAGLIATA
I criteri di esecuzione di Windows PowerShell consentono di
determinare le condizioni in base alle quali vengono caricati i
file di configurazione ed eseguiti gli script in Windows PowerShell.
È possibile impostare i criteri di esecuzione per il computer
locale, per l'utente corrente o per una determinata sessione. È
inoltre possibile utilizzare un'impostazione dei Criteri di gruppo per
impostare i criteri di esecuzione di computer e utenti.
I criteri di esecuzione per il computer locale e l'utente
corrente vengono archiviati nel Registro di sistema. Non è necessario
impostare i criteri di esecuzione nel profilo di Windows PowerShell.
I criteri di esecuzione per una determinata sessione vengono
archiviati solo nella memoria e vengono persi alla chiusura della
sessione.
I criteri di esecuzione non rappresentano un sistema di sicurezza
che limita le azioni dell'utente.
Gli utenti possono, ad esempio, aggirare facilmente un criterio
digitando il contenuto dello script nella riga di comando quando non è
possibile eseguire uno script. Al contrario, i criteri di esecuzione
aiutano agli utenti a impostare le regole di base e impediscono di
violarle in modo accidentale.
CRITERI DI ESECUZIONE DI WINDOWS POWERSHELL
-------------------------------------
I criteri di esecuzione di Windows PowerShell sono i seguenti:
"Restricted" è il criterio predefinito.
Restricted
- Criterio di esecuzione predefinito.
- Consente l'esecuzione di singoli comandi, ma non di script.
- Impedisce l'esecuzione di tutti i file di script,
inclusi i file di formattazione e configurazione
(ps1xml), i file script del modulo (psm1) e i profili
di Windows PowerShell (ps1).
AllSigned
- Consente l'esecuzione di script.
- Richiede che tutti gli script e i file di
configurazione siano firmati da un autore attendibile,
inclusi gli script creati nel computer locale.
- Chiede conferma all'utente prima di eseguire script da
autori non ancora classificati come attendibili o non
attendibili.
- Comporta il rischio di eseguire script non firmati da
origini diverse da Internet e script firmati, ma dannosi.
RemoteSigned
- Consente l'esecuzione di script.
- Non richiede la firma digitale di un autore attendibile
sugli script e sui file di configurazione scaricati da
Internet, inclusi quelli scaricati da programmi di posta
elettronica e di messaggistica immediata.
- Non richiede firme digitali su script eseguiti e scritti sul
computer locale (non scaricati da Internet).
- Comporta il rischio di eseguire script firmati, ma dannosi.
Unrestricted
- Consente l'esecuzione di script non firmati. Comporta
il rischio di eseguire script dannosi.
- Avvisa l'utente prima di eseguire script e file di
configurazione scaricati da Internet.
Bypass
- Non viene bloccato alcun elemento e non vengono visualizzati
avvisi o prompt.
- Questi criteri di esecuzione sono progettati per le
configurazioni in cui uno script di Windows PowerShell viene
compilato in un'applicazione di dimensioni maggiori o in cui
Windows PowerShell è la base per un programma che dispone
di un proprio modello di sicurezza.
Undefined
- Nell'ambito corrente non vi sono criteri di esecuzione
impostati.
- Se il criterio di esecuzione in tutti gli ambiti è
Undefined, il criterio di esecuzione effettivo è Restricted,
ovvero il criterio di esecuzione predefinito.
Nota: nei sistemi in cui non viene fatta distinzione tra i
percorsi UNC (Universal Naming Convention) e i percorsi Internet,
l'esecuzione degli script identificati da un percorso UNC potrebbe
non essere consentita con il criterio di esecuzione RemoteSigned.
AMBITO DEI CRITERI DI ESECUZIONE
----------------------
È possibile impostare criteri di esecuzione effettivi solo in un
determinato ambito.
I valori validi per Scope sono Process, CurrentUser e LocalMachine.
LocalMachine è l'impostazione predefinita durante l'impostazione dei
criteri di esecuzione.
I valori di Scope sono elencati nell'ordine di precedenza.
- Process
I criteri di esecuzione influiscono solo sulla sessione
corrente (processo corrente di Windows PowerShell). I
criteri di esecuzione vengono archiviati nella variabile di
ambiente $PSExecutionPolicyPreference. Questo valore viene
eliminato alla chiusura della sessione in cui vengono impostati i
criteri.
- CurrentUser
I criteri di esecuzione influiscono solo sull'utente
corrente. Vengono archiviati nella sottochiave del
Registro di sistema HKEY_CURRENT_USER.
- LocalMachine
I criteri di esecuzione influiscono su tutti gli utenti del
computer corrente. Vengono archiviati nella sottochiave del
Registro di sistema HKEY_LOCAL_MACHINE.
Il criterio che ha la precedenza è effettivo nella sessione
corrente, anche se è stato impostato un criterio più restrittivo a un
livello inferiore di precedenza.
Per ulteriori informazioni, vedere Set-ExecutionPolicy.
OTTENERE I CRITERI DI ESECUZIONE
------------------------------
Per ottenere i criteri di esecuzione di Windows PowerShell che si
trovano di fatto nella sessione corrente, utilizzare il cmdlet Get-
ExecutionPolicy.
Con il comando seguente viene ottenuto il criterio di esecuzione
corrente:
get-executionpolicy
Per ottenere tutti i criteri di esecuzione che influiscono sulla
sessione corrente e visualizzarli in ordine di precedenza, digitare:
get-executionpolicy -list
Il risultato sarà simile all'esempio di output seguente:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine AllSigned
In questo caso, il criterio di esecuzione effettivo è
RemoteSigned perché il criterio di esecuzione per l'utente
corrente ha la precedenza sui criteri di esecuzione impostati per il
computer locale.
Per ottenere il criterio di esecuzione impostato per un
determinato ambito, utilizzare il parametro Scope di
Get-ExecutionPolicy.
Il comando seguente, ad esempio, consente di ottenere il criterio di
esecuzione per l'ambito utente corrente.
get-executionpolicy -scope CurrentUser
MODIFICA DEL CRITERIO DI ESECUZIONE
------------------------------
Per modificare i criteri di esecuzione di Windows PowerShell nel
computer, utilizzare il cmdlet Set-ExecutionPolicy.
La modifica è immediatamente valida; non è necessario riavviare
Windows PowerShell.
Se si impostano i criteri di esecuzione per il computer locale
(impostazione predefinita) o l'utente corrente, la modifica viene
salvata nel Registro di sistema e rimane valida finché non verrà
nuovamente modificata.
Se i criteri di esecuzione vengono impostati per il processo
corrente, non vengono salvati nel Registro di sistema. Vengono
mantenuti finché il processo corrente ed eventuali processi figlio non
vengono chiusi.
Nota: in Windows Vista e nelle versioni successive di Windows,
per eseguire comandi che modificano i criteri di esecuzione per
il computer locale (impostazione predefinita), avviare Windows
PowerShell con l'opzione "Esegui come amministratore".
Per modificare il criterio di esecuzione, digitare:
Set-ExecutionPolicy <nome-criterio>
Ad esempio:
Set-ExecutionPolicy RemoteSigned
Per impostare i criteri di esecuzione in un determinato ambito,
digitare:
Set-ExecutionPolicy <nome-criterio> -scope <ambito>
Ad esempio:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Un comando per la modifica dei criteri di esecuzione può avere esito
positivo ma non modificare ancora i criteri di esecuzione effettivi.
Ad esempio, un comando che consente di impostare i criteri di
esecuzione per il computer locale può avere esito positivo ma i
criteri di esecuzione per l'utente corrente possono avere la
precedenza su di essi.
RIMOZIONE DEL CRITERIO DI ESECUZIONE
----------------------------
Per rimuovere il criterio di esecuzione per un determinato
ambito, impostare il valore dei criteri di esecuzione su Undefined.
Per rimuovere ad esempio i criteri di esecuzione per tutti gli
utenti del computer locale, digitare:
set-executionpolicy Undefined
Oppure:
set-executionpolicy Undefined -scope LocalMachine
Se non viene impostato alcun criterio di esecuzione in alcun
ambito, il criterio di esecuzione effettivo è Restricted, ovvero
l'impostazione predefinita.
IMPOSTARE UN CRITERIO DI ESECUZIONE IN POWERSHELL.EXE
-----------------------------------------
È possibile utilizzare il parametro ExecutionPolicy di
PowerShell.exe per impostare un criterio di esecuzione per una nuova
sessione di Windows PowerShell.
Il criterio influisce solo sulla sessione corrente e sulle
sessioni figlio.
Per impostare i criteri di esecuzione per una nuova sessione, avviare
Windows PowerShell sulla riga di comando (ad esempio Cmd.exe o Windows
PowerShell), quindi utilizzare il parametro ExecutionPolicy di
PowerShell.exe per impostare i criteri di esecuzione.
Ad esempio:
powershell.exe -executionpolicy -allsigned
I criteri di esecuzione impostati non sono archiviati nel Registro di
sistema.
Vengono invece archiviati nella variabile di ambiente
$PSExecutionPolicyPreference. La variabile viene eliminata quando si
chiude la sessione in cui vengono impostati i criteri.
Durante la sessione, il criterio di esecuzione impostato per la
sessione ha la precedenza su un criterio di esecuzione impostato nel
Registro di sistema per il computer locale o l'utente corrente.
Tuttavia, non ha la precedenza sui criteri di esecuzione impostati
tramite un'impostazione dei Criteri di gruppo (argomento illustrato di seguito).
UTILIZZARE CRITERI DI GRUPPO PER GESTIRE I CRITERI DI ESECUZIONE
-------------------------------------------
È possibile utilizzare l'impostazione dei Criteri di gruppo relativa
all'attivazione dell'esecuzione degli script per gestire i criteri di
esecuzione dei computer dell'organizzazione. L'impostazione dei Criteri
di gruppo esegue l'override dei criteri di esecuzione impostati in Windows
PowerShell in tutti gli ambiti.
Le impostazioni dei criteri relativi all'attivazione
dell'esecuzione degli script sono le seguenti:
-- Se si disattiva l'impostazione relativa all'attivazione
dell'esecuzione degli script, gli script non vengono eseguiti. Ciò
equivale al criterio di esecuzione "Restricted".
-- Se si attiva l'impostazione relativa all'attivazione
dell'esecuzione degli script, è possibile selezionare un
criterio di esecuzione. Le impostazioni dei Criteri di gruppo sono
equivalenti alle impostazioni dei criteri di esecuzione seguenti.
Criteri di gruppo Criteri di esecuzione
------------ ----------------
Consente tutti gli script. Unrestricted
Consente gli script locali
e gli script firmati remoti.
RemoteSigned Consente solo
gli script firmati. AllSigned
-- Se l'impostazione relativa all'attivazione
dell'esecuzione degli script non è configurata, non ha
effetto. Il criterio di esecuzione impostato in Windows
PowerShell è valido.
Il file PowerShellExecutionPolicy.adm aggiunge il criterio relativo
all'attivazione dell'esecuzione degli script ai nodi Configurazione
computer e Configurazione utente nell'Editor dei criteri di gruppo
nei percorsi seguenti.
Per Windows XP e Windows Server 2003:
Modelli amministrativi\Componenti di Windows\Windows PowerShell
Per Windows Vista e versioni successive di Windows:
Modelli amministrativi\Modelli amministrativi classici\Compone
nti di Windows\Windows PowerShell
I criteri impostati nel nodo Configurazione computer hanno la
precedenza sui criteri impostati nel nodo Configurazione utente.
Il file PowerShellExecutionPolicy.adm è disponibile nell'Area download
Microsoft. Per ulteriori informazioni, vedere l'argomento relativo ai
modelli amministrativi per Windows PowerShell all'indirizzo
https://go.microsoft.com/fwlink/?LinkId=131786 (le informazioni
potrebbero essere in lingua inglese).
PRECEDENZA DEI CRITERI DI ESECUZIONE
---------------------------
Durante la determinazione dei criteri di esecuzione effettivi per una
sessione, Windows PowerShell valuta i criteri di esecuzione nell'ordine di
precedenza seguente:
- Criteri di gruppo: Configurazione computer
- Criteri di gruppo: Configurazione utente
- Criteri di esecuzione: Process (o PowerShell.exe ExecutionPolicy)
- Criteri di esecuzione: CurrentUser
- Criteri di esecuzione: LocalMachine
GESTIONE DI SCRIPT FIRMATI E NON FIRMATI
----------------------------------
Se il criterio di esecuzione di Windows PowerShell è RemoteSigned, gli
script non firmati scaricati da Internet, inclusi quelli scaricati da
programmi di posta elettronica e di messaggistica immediata, non
verranno eseguiti.
È possibile firmare lo script o scegliere di eseguire uno script
non firmato senza modificare i criteri di esecuzione.
Per ulteriori informazioni, vedere about_Signing.
VEDERE ANCHE
Get-ExecutionPolicy
Set-ExecutionPolicy
about_Signing
Argomento relativo ai modelli amministrativi per Windows PowerShell
all'indirizzo https://go.microsoft.com/fwlink/?LinkId=131786
(le informazioni potrebbero essere in lingua inglese)