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) 




Argomenti della Guida