Quando cerchi di eseguire uno script PowerShell che non è stato firmato da Trusted Publisher, potresti ottenere il seguente errore di sicurezza.
<Il file Script PowerShell> non è firmato digitalmente. Non puoi eseguire
questo script sul sistema corrente. Per ulteriori informazioni sull’esecuzione degli script e sull’impostazione della politica di esecuzione, vedi
about_Execution_Policies a http://go.microsoft.com/fwlink/?LinkID=135170.
Come risolvere l’errore lo script PowerShell non è firmato digitalmente?
Ci sono alcune soluzioni per questo problema. Puoi firmare lo script PowerShell che vuoi eseguire, cambiare la politica di esecuzione, bypassare la politica o sbloccare il file in modo che possa essere eseguito una volta in quella sessione.
Check execution policy
Puoi eseguire Get-ExecutionPolicy cmdlet per ottenere la tua Execution Policy.
Puoi anche aggiungere il parametro -list per ottenere la politica di esecuzione per ogni ambito.
Change Execution Policy Permanently
Il metodo più semplice ma non sicuro per sbarazzarsi di questo messaggio di errore è cambiare la ExecutionPolicy usando il cmdlet Set-ExecutionPolicy e impostare la execution policy a unrestricted.
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Change Execution Policy Temporarily
Per cambiare temporaneamente la politica di esecuzione, puoi usare il cmdlet Set-ExecutionPolicy con l’impostazione ByPass.
Set-ExecutionPolicy -ExecutionPolicy ByPass
Di seguito è riportato il dettaglio dei valori accettabili per il parametro -ExecutionPolicy:
- Restricted. Non carica i file di configurazione o esegue gli script. Restricted è la politica di esecuzione predefinita.
- AllSigned. Richiede che tutti gli script e i file di configurazione siano firmati da un editore di fiducia, compresi gli script scritti sul computer locale.
- RemoteSigned. Richiede che tutti gli script e i file di configurazione scaricati da Internet siano firmati da un editore affidabile.
- Unrestricted. Carica tutti i file di configurazione ed esegue tutti gli script. Se si esegue uno script non firmato che è stato scaricato da Internet, viene richiesto il permesso prima dell’esecuzione.
- Bypass. Nulla viene bloccato e non ci sono avvisi o richieste.
- Undefined. Rimuove il criterio di esecuzione attualmente assegnato dall’ambito corrente. Questo parametro non rimuove un criterio di esecuzione che è impostato in un ambito dei criteri di gruppo.
L’ambito predefinito per il comando Set-ExecutionPolicy è LocalMachine. Potete anche specificare su quale ambito la policy sarà impostata aggiungendo il parametro -Scope. Sotto c’è il dettaglio degli scopi che puoi impostare:
- Processo: Il criterio di esecuzione riguarda solo il processo PowerShell corrente.
- CurrentUser: Il criterio di esecuzione riguarda solo l’utente corrente.
- LocalMachine: Il criterio di esecuzione riguarda tutti gli utenti del computer.
Per rimuovere un criterio di esecuzione da un particolare ambito, impostare il criterio di esecuzione per quell’ambito su Undefined.