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