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 usata Get-ExecutionPolicy
senza parametri.
I criteri di esecuzione effettivi sono determinati dai criteri di esecuzione impostati dalle Set-ExecutionPolicy
impostazioni di Criteri di gruppo e .
Per ulteriori 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 Get-ExecutionPolicy
cmdlet 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 Set-ExecutionPolicy
cmdlet usa il parametro ExecutionPolicy per specificare i RemoteSigned
criteri. Il parametro Scope specifica il valore di ambito predefinito, LocalMachine
.
Per visualizzare le impostazioni dei criteri di esecuzione, usare il Get-ExecutionPolicy
cmdlet 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 Get-ExecutionPolicy
cmdlet usa il parametro List per visualizzare i criteri di esecuzione di ogni ambito. Il Get-ExecutionPolicy
cmdlet 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 RemoteSigned
criteri di esecuzione impediscono l'esecuzione di script non firmati.
Una procedura consigliata consiste nel leggere il codice dello script e verificare che sia sicuro prima di usare il Unblock-File
cmdlet . Il Unblock-File
cmdlet 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:
Set-ExecutionPolicy
Usa il parametro ExecutionPolicy per specificare i RemoteSigned
criteri. Il criterio è impostato per l'ambito predefinito, LocalMachine
.
Il Get-ExecutionPolicy
cmdlet mostra che RemoteSigned
è il criterio di esecuzione effettivo per la sessione di PowerShell corrente.
Lo Start-ActivityTracker.ps1
script viene eseguito dalla directory corrente. Lo script è bloccato perché RemoteSigned
lo script non è firmato digitalmente.
Per questo esempio, il codice dello script è stato esaminato e verificato come sicuro da eseguire. Il Unblock-File
cmdlet usa il parametro Path per sbloccare lo script.
Per verificare che Unblock-File
i criteri di esecuzione non siano stati modificati, Get-ExecutionPolicy
visualizza i criteri di esecuzione effettivi, RemoteSigned
.
Lo script viene Start-ActivityTracker.ps1
eseguito dalla directory corrente. Lo script inizia a essere eseguito perché è stato sbloccato dal Unblock-File
cmdlet .
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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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
. I criteri di esecuzione impostati da Criteri di gruppo per tutti gli utenti del computer.UserPolicy
. I criteri di esecuzione impostati 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.
Type: | ExecutionPolicyScope |
Accepted values: | CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy |
Position: | 0 |
Default value: | Effective execution policy |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Il cmdlet restituisce sempre Unrestricted 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.