Get-ExecutionPolicy
Ottiene i criteri di esecuzione per la sessione corrente.
Sintassi
Get-ExecutionPolicy
[[-Scope] <ExecutionPolicyScope>]
[-List]
[<CommonParameters>]
Descrizione
Per visualizzare i criteri di esecuzione per ogni ambito nell'ordine di precedenza, usare Get-ExecutionPolicy -List
. Per visualizzare i criteri di esecuzione effettivi per la sessione di PowerShell, usare Get-ExecutionPolicy
senza parametri.
I criteri di esecuzione effettivi sono determinati dai criteri di esecuzione impostati da Set-ExecutionPolicy
e dalle impostazioni di Criteri di gruppo.
Per altre informazioni, vedere about_Execution_Policies.
Esempio
Esempio 1: Ottenere tutti i criteri di esecuzione
Questo comando visualizza i criteri di esecuzione per ogni ambito nell'ordine di precedenza.
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine Undefined
Il cmdlet Get-ExecutionPolicy
usa il parametro List per visualizzare i criteri di esecuzione di ogni ambito.
Esempio 2: Impostare un criterio di esecuzione
In questo esempio viene illustrato come impostare un criterio di esecuzione per il computer locale.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
Il cmdlet Set-ExecutionPolicy
usa il parametro ExecutionPolicy per specificare i criteri di RemoteSigned
. Il parametro Scope specifica il valore di ambito predefinito, LocalMachine
.
Per visualizzare le impostazioni dei criteri di esecuzione, usare il cmdlet Get-ExecutionPolicy
con il parametro list.
Esempio 3: Ottenere i criteri di esecuzione effettivi
Questo esempio illustra come visualizzare i criteri di esecuzione effettivi per una sessione di PowerShell.
PS> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
PS> Get-ExecutionPolicy
AllSigned
Il cmdlet Get-ExecutionPolicy
usa il parametro List per visualizzare i criteri di esecuzione di ogni ambito. Il cmdlet Get-ExecutionPolicy
viene eseguito senza un parametro per visualizzare i criteri di esecuzione effettivi, AllSigned
.
Esempio 4: Sbloccare uno script per eseguirlo senza modificare i criteri di esecuzione
In questo esempio viene illustrato come i criteri di esecuzione RemoteSigned
impediscono l'esecuzione di script non firmati.
È consigliabile leggere il codice dello script e verificare che sia sicuro prima di usando il cmdlet Unblock-File
. Il cmdlet Unblock-File
sblocca gli script in modo che possano essere eseguiti, ma non modifica i criteri di esecuzione.
PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS> Unblock-File -Path .\Start-ActivityTracker.ps1
PS> Get-ExecutionPolicy
RemoteSigned
PS> .\Start-ActivityTracker.ps1
Task 1:
Il Set-ExecutionPolicy
usa il parametro ExecutionPolicy per specificare i criteri di RemoteSigned
. I criteri vengono impostati per l'ambito predefinito, LocalMachine
.
Il cmdlet Get-ExecutionPolicy
mostra che RemoteSigned
è il criterio di esecuzione effettivo per la sessione di PowerShell corrente.
Lo script Start-ActivityTracker.ps1
viene eseguito dalla directory corrente. Lo script viene bloccato da RemoteSigned
perché lo script non è firmato digitalmente.
Per questo esempio, il codice dello script è stato esaminato e verificato come sicuro da eseguire. Il cmdlet Unblock-File
usa il parametro Path per sbloccare lo script.
Per verificare che Unblock-File
non abbia modificato i criteri di esecuzione, Get-ExecutionPolicy
visualizza i criteri di esecuzione effettivi RemoteSigned
.
Lo script Start-ActivityTracker.ps1
viene eseguito dalla directory corrente. Lo script inizia a essere eseguito perché è stato sbloccato dal cmdlet Unblock-File
.
Parametri
-List
Ottiene tutti i valori dei criteri di esecuzione per la sessione. Per impostazione predefinita, Get-ExecutionPolicy
ottiene solo i criteri di esecuzione effettivi.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Scope
Specifica l'ambito interessato da un criterio di esecuzione.
I criteri di esecuzione effettivi sono determinati dall'ordine di precedenza come indicato di seguito:
-
MachinePolicy
. Impostato da criteri di gruppo per tutti gli utenti del computer. -
UserPolicy
. Impostato da criteri di gruppo per l'utente corrente del computer. -
Process
. Influisce solo sulla sessione di PowerShell corrente. -
LocalMachine
. Ambito predefinito che interessa tutti gli utenti del computer. -
CurrentUser
. Influisce solo sull'utente corrente.
Tipo: | ExecutionPolicyScope |
Valori accettati: | CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy |
Posizione: | 0 |
Valore predefinito: | Effective execution policy |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Il cmdlet restituisce sempre senza restrizioni nelle piattaforme Linux e macOS. Nelle piattaforme Windows restituisce i criteri di esecuzione correnti.
Note
Un criterio di esecuzione fa parte della strategia di sicurezza di PowerShell. I criteri di esecuzione determinano se è possibile caricare file di configurazione, ad esempio il profilo di PowerShell o eseguire script. Inoltre, se gli script devono essere firmati digitalmente prima di essere eseguiti.