Get-ExecutionPolicy
Obtiene las directivas de ejecución de la sesión actual.
Sintaxis
Get-ExecutionPolicy
[[-Scope] <ExecutionPolicyScope>]
[-List]
[<CommonParameters>]
Description
Para mostrar las directivas de ejecución de cada ámbito en el orden de prioridad, use Get-ExecutionPolicy -List
. Para ver la directiva de ejecución efectiva de 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 Set-ExecutionPolicy
y la 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 cmdlet Get-ExecutionPolicy
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 cmdlet Set-ExecutionPolicy
utiliza el parámetro ExecutionPolicy para especificar la directiva RemoteSigned
. El parámetro Scope especifica el valor de ámbito predeterminado, LocalMachine
.
Para ver la configuración de la directiva de ejecución, use el cmdlet Get-ExecutionPolicy
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 cmdlet Get-ExecutionPolicy
usa el parámetro List para mostrar la directiva de ejecución de cada ámbito. El cmdlet Get-ExecutionPolicy
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 la directiva de ejecución de RemoteSigned
impide ejecutar scripts sin firmar.
Un procedimiento recomendado es leer el código del script y comprobar que es seguro antes de mediante el cmdlet Unblock-File
. El cmdlet Unblock-File
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:
El Set-ExecutionPolicy
usa el parámetro ExecutionPolicy para especificar la política de RemoteSigned
. La directiva se establece para el ámbito predeterminado, LocalMachine
.
El cmdlet Get-ExecutionPolicy
muestra que RemoteSigned
es la directiva de ejecución efectiva para la sesión actual de PowerShell.
El script Start-ActivityTracker.ps1
se ejecuta desde el directorio actual. El script está bloqueado por RemoteSigned
porque el script no está firmado digitalmente.
En este ejemplo, el código del script se revisó y comprobó como seguro para ejecutarse. El cmdlet Unblock-File
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, Start-ActivityTracker.ps1
se ejecuta desde el directorio actual. El script comienza a ejecutarse porque fue desbloqueado por el cmdlet 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.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | 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
. Establecido por una Directiva de Grupo para todos los usuarios del equipo. -
UserPolicy
. Establecido 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.
Tipo: | ExecutionPolicyScope |
Valores aceptados: | CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy |
Posición: | 0 |
Valor predeterminado: | Effective execution policy |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
El cmdlet siempre devuelve sin restricciones en 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.