Compartir a través de


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

ExecutionPolicy

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.