Spiegazione della policy di esecuzione di PowerShell
Sfoglia gli argomenti dei post
- Che cos'è PowerShell ExecutionPolicy?
- Criteri di esecuzione disponibili
- Ambito e precedenza di ExecutionPolicy
- Come ottenere l'attuale criterio di esecuzione di PowerShell
- Come impostare la policy di esecuzione di PowerShell
- Conclusione
- Altre guide utili
- Risorse aggiuntive e riferimenti
Che cos'è PowerShell ExecutionPolicy?
ExecutionPolicy in PowerShell è una funzionalità di sicurezza che controlla il modo in cui PowerShell carica i file di configurazione ed esegue gli script. Le funzionalità di ExecutionPolicy aiutano a impedire che PowerShell esegua script dannosi.
È possibile impostare la politica di esecuzione per un computer, un utente o una sessione. Il Set-ExecutionPolicy cmdlet può essere utilizzato per impostare ExecutionPolicy. Il comando PowerShell.exe ha anche un parametro ExecutionPolicy che puoi usare per impostare PowerShell ExecutionPolicy.
In questa guida imparerai i diversi tipi di criteri di esecuzione di PowerShell. Imparerai anche come usare i comandi Set-ExecutionPolicy e PowerShell.exe -ExecutionPolicy.
Criteri di esecuzione disponibili
Questa sezione spiega le diverse ExecutionPolicy che puoi impostare in PowerShell e cosa ti consentirà di fare ciascuna.
Limitato
- Questo è il criterio di esecuzione predefinito in Windows 8, Server 2012 e versioni successive.
- Impedisce l'esecuzione di file di configurazione di PowerShell (.ps1xml), file di script del modulo (.psm1) e profili di Windows PowerShell (.ps1)
- Consente singoli comandi di PowerShell ma nega gli script
AllSigned
Quando si imposta AllSigned ExecutionPolicy, PowerShell:
- Esegue tutti gli script
- Richiede che prima che uno script possa essere eseguito, deve essere firmato da un editore affidabile. Ciò include gli script scritti sul computer locale
- Richieste di conferma prima di eseguire uno script da un editore che non hai confermato è attendibile
- Può eseguire codici firmati ma dannosi
Firmato a distanza
Criterio di esecuzione con firma remota:
- Consente l'esecuzione degli script
- Richiede che tutti gli script scaricati da Internet siano firmati digitalmente da un editore specificato come attendibile. Ciò include gli script ricevuti tramite e-mail e piattaforme di messaggistica istantanea.
- Non richiederà la firma digitale degli script scritti su un computer locale
- Può consentire l'esecuzione di script dannosi da altre fonti
Illimitato
- Consente l'esecuzione di script non assegnati
- Ti avviserà prima di eseguire uno script da Internet
- Rischi di eseguire codici o script dannosi
Circonvallazione
Con Bypass ExecutionPolicy:
- Nessuno script è bloccato. Non offre anche avvisi.
Non definito
- Significa che nessuna ExecutionPolicy è definita
- L'effettiva ExecutionPolicy è Restricted (impostazione predefinita)
Ambito e precedenza di ExecutionPolicy
Puoi applicare i criteri di esecuzione di PowerShell a:
LocalMcachine : interessa solo gli utenti correnti. Questo ha la precedenza minore
Utente corrente : La politica di esecuzione riguarda solo l'utente corrente. Ha la precedenza LocalMcachine ma ha una precedenza inferiore su Processi .
Processi : si applica solo alla sessione corrente. Ha la massima precedenza.
Come ottenere l'attuale criterio di esecuzione di PowerShell
Per visualizzare l'attuale PowerShell ExecutionPolicy, eseguire il comando seguente:
|_+_|
Per visualizzare l'ExecutionPolicy impostato per tutti gli ambiti, utilizzare questo comando:
Android non si connette a Internet|_+_|
Puoi anche ottenere la politica di esecuzione in base all'ambito. Ecco alcuni comandi di esempio:
|_+_|Come impostare la policy di esecuzione di PowerShell
Come accennato nell'introduzione, è possibile impostare ExecutionPolicy con il cmdlet Set-ExecutionPolicy. Puoi anche usare il comando PowerShell.exe -ExecutionPolicy.
Come impostare la politica di esecuzione con Set-ExecutionPolicy
La sintassi del cmdlet Set-ExecutionPolicy è:
|_+_|Ad esempio, per impostare la politica di esecuzione su Firmato a distanza usa il comando seguente:
|_+_|Ecco il risultato del comando.
Wi-Fi Android connesso ma nessuna correzione di Internet
Il comando non è riuscito perché non ho aperto PowerShell come amministratore.Ecco il comando eseguito come amministratore:
Come puoi vedere dall'immagine, la nuova Execution Policy è ora Firmato a distanza .
Dagli ultimi 2 comandi, mi è stato chiesto di confermare il comando. Per ignorare questo prompt, includi il file -Forza parametro.
Il comando ora viene eseguito senza richiedere conferma.
Il -Forza parametro è particolarmente utile negli script. Senza questo parametro il tuo script potrebbe interrompersi.Per impostazione predefinita, questo comando imposta la politica di esecuzione per Macchina Locale scopo. Per confermarlo, esegui il comando seguente:
|_+_|
Per impostare la politica di esecuzione in modo che si applichi a un altro ambito, utilizzare il - Scopo parametro.
Il comando seguente imposta la politica di esecuzione per Utente corrente :
|_+_|
Come puoi vedere dal risultato, Utente corrente la politica non c'è più Non definito . È adesso Circonvallazione , la politica impostata con l'ultimo comando.
Come impostare ExecutionPolicy con PowerShell.exe -ExecutionPolicy
Se si desidera ignorare la politica di esecuzione per la sessione di accesso, è possibile impostare la politica di esecuzione per la riga di comando corrente. Ciò si ottiene utilizzando il comando PowerShell.exe.
Prima di fornire esempi, ecco l'attuale politica di esecuzione:
L'attuale politica di esecuzione è Limitato . Questo perché il Processi l'ambito ha la precedenza. Per confermare, vedere il risultato di seguito:
Se ti ricordi, Limitato la politica NON consentirà l'esecuzione di script.
Ciò significa che se provo a eseguire uno script, mi verrà negato l'accesso. L'immagine seguente mostra una serie di comandi e i relativi risultati. Vedi la mia spiegazione sotto l'immagine.
Il primo comando mostrato nell'immagine è:
|_+_|Ho provato a eseguire uno script di PowerShell. Quindi ho ricevuto il seguente messaggio di errore:
Il file C:PSschedule powershell exampleCreate-folders-from-text-file.ps1 non può essere caricato perché l'esecuzione degli script è disabilitata su questo sistema.
Il motivo è perché l'attuale politica di esecuzione è Limitato . Non consente l'esecuzione di alcuno script.
Torna all'immagine di riferimento. Nella riga successiva, ho eseguito il seguente comando:
|_+_|In effetti, posso impostare una politica di esecuzione temporanea per la riga di comando utilizzando il parametro -ExecutionPolicy del comando thepowershell.exe. Ma ho ricevuto lo stesso messaggio di errore. Il motivo è che devo impostare la politica di esecuzione prima di chiamare lo script.
come si usa acestream?
Quindi nella riga successiva, ho eseguito questo comando:
|_+_|Questo imposta la politica di esecuzione per la sessione di accesso corrente su Illimitato . Quindi, quando ora eseguo il mio script PowerShell, è stato eseguito correttamente! Vedi l'immagine di riferimento sopra.
Il risultato dell'ultima analisi è questo: puoi impostare Powershell ExecutionPolicy per la sessione corrente usando Powershell.exe -ExecutionPolicy. Ma devi eseguire il comando prima di chiamare il tuo script.Per confermare che Powershell.exe imposta solo i criteri per la sessione corrente, eseguirò il comando seguente dalla sessione corrente:
|_+_|Il risultato è Illimitato per il Utente corrente scopo. Se mi disconnetto dalla mia sessione corrente e mi ricollego. Verrà ripristinato il criterio impostato dal comando Set-ExecutionPolicy.
Conclusione
Spero di essere stato in grado di semplificare come ottenere e impostare i criteri di esecuzione di PowerShell. Se hai domande o commenti utilizza il modulo Lascia un commento in fondo alla pagina.
Altre guide utili
- Operatore PowerShell non uguale: applicazioni, esempi
- Spiegazione di Powershell For Loop: sintassi ed esempi


