Compartir a través de


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

ExecutionPolicy

Este cmdlet 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.