Modifica le preferenze utente per quanto riguarda il criterio di esecuzione di Windows PowerShell.

Sintassi

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrizione

Set-ExecutionPolicy modifica le preferenze utente per quanto riguarda il criterio di esecuzione di Windows PowerShell.

Per eseguire questo comando in Windows Vista, Windows Server 2008 e versioni successive di Windows, è necessario avviare Windows PowerShell con l'opzione "Esegui come amministratore", anche se l'utente è un membro del gruppo Administrators nel computer.

Il criterio di esecuzione fa parte della strategia di sicurezza di Windows PowerShell. Esso determina se è possibile caricare file di configurazione, incluso il profilo di Windows PowerShell, ed eseguire script, nonché determina quali script, se presenti, devono essere firmati digitalmente per poter essere eseguiti.

Per ulteriori informazioni, vedere about_Execution_Policies.

Parametri

-ExecutionPolicy <ExecutionPolicy>

Specifica un nuovo criterio di esecuzione per la shell. Il nome del parametro ("Name") è facoltativo.

I valori validi sono:

-- Restricted: non consente di caricare file di configurazione o eseguire script. "Restricted" rappresenta il valore predefinito.

-- AllSigned: richiede che tutti gli script e i file di configurazione siano firmati da un autore attendibile, inclusi gli script creati nel computer locale.

-- RemoteSigned: richiede che tutti gli script e i file di configurazione scaricati da Internet siano firmati da un autore attendibile.

-- Unrestricted: consente di caricare tutti i file di configurazione e di eseguire tutti gli script. Se si esegue uno script non firmato che è stato scaricato da Internet, prima dell'esecuzione viene richiesta l'autorizzazione dell'utente.

-- Bypass: nessun elemento viene bloccato e non sono presenti avvisi o prompt.

-- Undefined: rimuove i criteri di esecuzione attualmente assegnati dall'ambito corrente. Questo parametro non rimuove i criteri di esecuzione impostati in un ambito di Criteri di gruppo.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByValue)

Accettare caratteri jolly?

false

-Force

Elimina tutti i prompt. Per impostazione predefinita, Set-ExecutionPolicy visualizza un avviso ogni volta che si modificano i criteri di esecuzione.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Scope <ExecutionPolicyScope>

Specifica l'ambito dei criteri di esecuzione. L'impostazione predefinita è LocalMachine.

I valori validi sono:

-- Processo: i criteri di esecuzione influiscono solo sul processo corrente di Windows PowerShell.

-- CurrentUser: i criteri di esecuzione influiscono solo sull'utente corrente.

-- LocalMachine: i criteri di esecuzione influiscono su tutti gli utenti del computer.

Per rimuovere criteri di esecuzione da un determinato ambito, impostare i criteri di esecuzione relativi su Undefined.

Obbligatorio?

false

Posizione?

2

Valore predefinito

LocalMachine

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Microsoft.PowerShell.ExecutionPolicy, System.String

È possibile reindirizzare un oggetto criteri di esecuzione o una stringa che contiene il nome dei criteri di esecuzione su Set-ExecutionPolicy.

Output

Nessuno

Questo cmdlet non restituisce alcun output.

Note

Quando si utilizza Set-ExecutionPolicy, le nuove preferenze utente vengono scritte nel Registro di sistema e rimangono invariate finché l'utente non le modifica.

Se, tuttavia, i Criteri di gruppo relativi all'attivazione dell'esecuzione degli script sono attivati per il computer o per l'utente, le preferenze utente vengono scritte nel Registro di sistema ma non vengono applicate e in Windows PowerShell viene visualizzato un messaggio che illustra il conflitto. Non è possibile utilizzare Set-ExecutionPolicy per sostituire un criterio di gruppo, anche se le preferenze utente sono più restrittive del criterio.

Esempio 1

C:\PS>set-executionpolicy remotesigned

Descrizione
-----------
Tramite questo comando le preferenze utente per il criterio di esecuzione della shell vengono impostate su RemoteSigned.






Esempio 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

Descrizione
-----------
Questo comando tenta di impostare il criterio di esecuzione della shell su "Restricted". L'impostazione "Restricted" viene scritta nel Registro di sistema ma, poiché entra in conflitto con un criterio di gruppo, non viene applicata, anche se è più restrittiva del criterio.






Esempio 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Descrizione
-----------
Questo comando ottiene il criterio di esecuzione da un computer remoto e applica tale criterio al computer locale.

Il comando utilizza il cmdlet Invoke-Command per inviare il comando al computer remoto. Poiché è possibile reindirizzare un oggetto ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) a Set-ExecutionPolicy, il comando Set-ExecutionPolicy non richiede un parametro ExecutionPolicy.

Il comando non dispone di un parametro Force che elimina il prompt dell'utente.






Esempio 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

        Scope   ExecutionPolicy
        -----   ---------------
MachinePolicy         Undefined
   UserPolicy         Undefined
      Process         Undefined
  CurrentUser         AllSigned
 LocalMachine      RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Descrizione
-----------
In questo esempio viene illustrato come impostare criteri di esecuzione per un determinato ambito.

Con il primo comando viene utilizzato il cmdlet Set-ExecutionPolicy per impostare criteri di esecuzione di AllSigned per l'utente corrente. Viene utilizzato il parametro Force per eliminare i prompt dell'utente.

Con il secondo comando viene utilizzato il parametro List di Get-ExecutionPolicy per ottenere i criteri di esecuzione impostati in ogni ambito. I risultati mostrano che i criteri di esecuzione impostati per l'utente corrente sono diversi dai criteri di esecuzione impostati per tutti gli utenti del computer. 

Con il terzo comando viene utilizzato il cmdlet Get-ExecutionPolicy senza parametri per ottenere i criteri di esecuzione effettivi per l'utente corrente nel computer locale. I risultati confermano che i criteri di esecuzione impostati per l'utente corrente hanno la precedenza su quelli impostati per tutti gli utenti.






Esempio 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Descrizione
-----------
Con questo comando viene utilizzato il valore Undefined dei criteri di esecuzione per rimuovere effettivamente i criteri di esecuzione impostati per l'ambito dell'utente corrente. Di conseguenza, i criteri di esecuzione impostati in Criteri di gruppo o nell'ambito LocalMachine (tutti gli utenti) sono effettivi.

Se i criteri di esecuzione vengono impostati in tutti gli ambiti su Undefined e Criteri di gruppo non è impostato, i criteri di esecuzione predefiniti, Restricted, sono effettivi per tutti gli utenti del computer.






Vedere anche




Argomenti della Guida