Get-ExecutionPolicy
Obtiene las directivas de ejecución de la sesión actual.
Syntax
Get-ExecutionPolicy
[[-Scope] <ExecutionPolicyScope>]
[-List]
[<CommonParameters>]
Description
Para mostrar las directivas de ejecución para cada ámbito en el orden de prioridad, use Get-ExecutionPolicy -List
. Para ver la directiva de ejecución efectiva para la sesión de PowerShell, use Get-ExecutionPolicy
sin parámetros.
La directiva de ejecución efectiva viene determinada por las directivas de ejecución establecidas por y la Set-ExecutionPolicy
configuración de directiva de grupo.
Para obtener más información, vea about_Execution_Policies.
Ejemplos
Ejemplo 1: Obtener todas las directivas de ejecución
Este comando muestra las directivas de ejecución para cada ámbito en el orden de prioridad.
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine Undefined
El Get-ExecutionPolicy
cmdlet usa el parámetro List para mostrar la directiva de ejecución de cada ámbito.
Ejemplo 2: Establecimiento de una directiva de ejecución
En este ejemplo se muestra cómo establecer una directiva de ejecución para el equipo local.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
El Set-ExecutionPolicy
cmdlet usa el parámetro ExecutionPolicy para especificar la RemoteSigned
directiva. El parámetro Scope especifica el valor de ámbito predeterminado, LocalMachine
.
Para ver la configuración de la directiva de ejecución, use el Get-ExecutionPolicy
cmdlet con el parámetro List .
Ejemplo 3: Obtención de la directiva de ejecución efectiva
En este ejemplo se muestra cómo mostrar la directiva de ejecución efectiva para una sesión de PowerShell.
PS> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned
PS> Get-ExecutionPolicy
AllSigned
El Get-ExecutionPolicy
cmdlet usa el parámetro List para mostrar la directiva de ejecución de cada ámbito. El Get-ExecutionPolicy
cmdlet se ejecuta sin un parámetro para mostrar la directiva de ejecución efectiva, AllSigned
.
Ejemplo 4: Desbloquear un script para ejecutarlo sin cambiar la directiva de ejecución
En este ejemplo se muestra cómo impide que la RemoteSigned
directiva de ejecución ejecute scripts sin firmar.
Un procedimiento recomendado es leer el código del script y comprobar que es seguro antes de usar el Unblock-File
cmdlet . El Unblock-File
cmdlet desbloquea los scripts para que se puedan ejecutar, pero no cambia la directiva de ejecución.
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 el parámetro ExecutionPolicy para especificar la RemoteSigned
directiva. La directiva se establece para el ámbito predeterminado, LocalMachine
.
El Get-ExecutionPolicy
cmdlet muestra que RemoteSigned
es la directiva de ejecución efectiva para la sesión actual de PowerShell.
El Start-ActivityTracker.ps1
script se ejecuta desde el directorio actual. El script está bloqueado porque RemoteSigned
el script no está firmado digitalmente.
En este ejemplo, el código del script se revisó y comprobó como seguro para ejecutarse. El Unblock-File
cmdlet usa el parámetro Path para desbloquear el script.
Para comprobar que Unblock-File
no cambió la directiva de ejecución, Get-ExecutionPolicy
muestra la directiva de ejecución efectiva, RemoteSigned
.
El script se Start-ActivityTracker.ps1
ejecuta desde el directorio actual. El script comienza a ejecutarse porque el cmdlet lo desbloqueó Unblock-File
.
Parámetros
-List
Obtiene todos los valores de directiva de ejecución de la sesión. De forma predeterminada, Get-ExecutionPolicy
obtiene solo la directiva de ejecución efectiva.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Especifica el ámbito afectado por una directiva de ejecución.
La directiva de ejecución efectiva viene determinada por el orden de prioridad de la siguiente manera:
MachinePolicy
. Establezca por una directiva de grupo para todos los usuarios del equipo.UserPolicy
. Establezca por una directiva de grupo para el usuario actual del equipo.Process
. Afecta solo a la sesión actual de PowerShell.LocalMachine
. Ámbito predeterminado que afecta a todos los usuarios del equipo.CurrentUser
. Afecta solo al usuario actual.
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 |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
El cmdlet siempre devuelve Unrestricted en las plataformas Linux y macOS. En las plataformas Windows, devuelve la directiva de ejecución actual.
Notas
Una directiva de ejecución forma parte de la estrategia de seguridad de PowerShell. Las directivas de ejecución determinan si puede cargar archivos de configuración, como el perfil de PowerShell o ejecutar scripts. Además, si los scripts deben estar firmados digitalmente antes de que se ejecuten.