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)