Cambia la preferencia del usuario para la directiva de ejecución de Windows PowerShell.

Sintaxis

Set-ExecutionPolicy [-ExecutionPolicy] {<Unrestricted> | <RemoteSigned> | <AllSigned> | <Restricted> | <Default> | <Bypass> | <Undefined>} [[-Scope] {<Process> | <CurrentUser> | <LocalMachine> | <UserPolicy> | <MachinePolicy>}] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Descripción

Set-ExecutionPolicy cambia la preferencia del usuario para la directiva de ejecución de Windows PowerShell.

Para ejecutar este comando en Windows Vista, Windows Server 2008 y versiones posteriores de Windows, debe iniciar Windows PowerShell con la opción "Ejecutar como administrador", aunque sea miembro del grupo Administradores en el equipo.

La directiva de ejecución forma parte de la estrategia de seguridad de Windows PowerShell. Esta directiva determina si puede cargar archivos de configuración (incluido su perfil de Windows PowerShell) y ejecutar scripts, así como los scripts, si los hubiera, que deben estar firmados digitalmente para que se puedan ejecutar.

Para obtener más información, vea about_Execution_Policies.

Parámetros

-ExecutionPolicy <ExecutionPolicy>

Especifica una nueva directiva de ejecución del shell. El nombre del parámetro ("Name") es opcional.

Los valores válidos son:

-- Restricted: no carga archivos de configuración ni ejecuta scripts. La configuración predeterminada es "Restricted".

-- AllSigned: requiere que todas los scripts y archivos de configuración estén firmados por un editor de confianza, incluidos los scripts que se escriban en el equipo local.

-- RemoteSigned: requiere que todos los scripts y archivos de configuración descargados de Internet estén firmados por un editor de confianza.

-- Unrestricted: carga todos los archivos de configuración y ejecuta todos los scripts. Si ejecuta un script sin firmar descargado de Internet, se le pedirá permiso antes de ejecutarlo.

-- Bypass: no se bloquea nada y no hay advertencias ni peticiones.

-- Undefined: quita del ámbito actual la directiva de ejecución asignada. Este parámetro no quita ninguna directiva de ejecución establecida en un ámbito de directiva de grupo.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByValue)

¿Aceptar caracteres comodín?

false

-Force

Suprime todos los mensajes. De forma predeterminada, Set-ExecutionPolicy muestra una advertencia cada vez que se cambia la directiva de ejecución.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-Scope <ExecutionPolicyScope>

Especifica el ámbito de la directiva de ejecución. El valor predeterminado es LocalMachine.

Los valores válidos son:

-- Process: la directiva de ejecución afecta solamente al proceso de Windows PowerShell actual.

-- CurrentUser: la directiva de ejecución afecta solamente al usuario actual.

-- LocalMachine: la directiva de ejecución afecta a todos los usuarios del equipo.

Para quitar una directiva de ejecución de un ámbito determinado, se establece la directiva de ejecución de ese ámbito en Undefined.

¿Requerido?

false

¿Posición?

2

Valor predeterminado

LocalMachine

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si se ejecutara el comando sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

Microsoft.PowerShell.ExecutionPolicy, System.String

Se puede canalizar a Set-ExecutionPolicy un objeto de directiva de ejecución o una cadena que contiene el nombre de una directiva de ejecución.

Salidas

Ninguno

Este cmdlet no devuelve resultados.

Notas

Si usa Set-ExecutionPolicy, la nueva preferencia del usuario se escribe en el Registro y se mantiene sin modificar hasta que la cambie.

No obstante, si se habilita la directiva de grupo "Activar ejecución de scripts" para el equipo o el usuario, la preferencia del usuario se escribe en el Registro pero no se aplica, y Windows PowerShell mostrará un mensaje para explicar el conflicto. No se puede usar Set-ExecutionPolicy para invalidar una directiva de grupo, aunque la preferencia del usuario sea más restrictiva que la directiva.

Ejemplo 1

C:\PS>set-executionpolicy remotesigned

Descripción
-----------
Este comando establece en RemoteSigned la preferencia del usuario para la directiva de ejecución del shell.






Ejemplo 2

C:\PS>Set-ExecutionPolicy Restricted

Set-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.
At line:1 char:20
+ set-executionpolicy  <<<< restricted

Descripción
-----------
Este comando intenta establecer la directiva de ejecución para el shell en "Restricted". El valor de configuración "Restricted" se escribe en el Registro, pero como está en conflicto con una directiva de grupo, no surte efecto aunque sea más restrictivo que la directiva.






Ejemplo 3

C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force

Descripción
-----------
Este comando obtiene la directiva de ejecución de un equipo remoto y aplica dicha directiva de ejecución al equipo local.

El comando utiliza el cmdlet Invoke-Command para enviar el comando al equipo remoto. Dado que se puede canalizar un objeto ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) a Set-ExecutionPolicy, el comando Set-ExecutionPolicy no necesita un parámetro ExecutionPolicy.

El comando tiene un parámetro Force, que suprime la confirmación de usuario.






Ejemplo 4

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -force

C:\PS> get-executionpolicy -list

        Scope   ExecutionPolicy
        -----   ---------------
MachinePolicy         Undefined
   UserPolicy         Undefined
      Process         Undefined
  CurrentUser         AllSigned
 LocalMachine      RemoteSigned

C:\PS> get-executionpolicy
AllSigned

Descripción
-----------
En este ejemplo se muestra cómo establecer una directiva de ejecución para un ámbito determinado.

El primer comando utiliza el cmdlet Set-ExecutionPolicy para establecer la directiva de ejecución AllSigned para el usuario actual. Utiliza el parámetro Force para suprimir las confirmaciones de usuario.

El segundo comando usa el parámetro List de Get-ExecutionPolicy para obtener las directivas de ejecución establecidas en cada ámbito. Los resultados muestran que la directiva de ejecución establecida para el usuario actual es distinta de la establecida para todos los usuarios del equipo. 

El tercer comando usa el cmdlet Get-ExecutionPolicy sin parámetros para obtener la directiva de ejecución vigente del usuario actual en el equipo local. El resultado confirma que la directiva de ejecución establecida para el usuario actual tiene precedencia sobre la establecida para todos los usuarios.






Ejemplo 5

C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined

Descripción
-----------
Este comando utiliza el valor Undefined de directiva de ejecución para quitar efectivamente la directiva de ejecución establecida para el ámbito del usuario actual. En consecuencia, está vigente la directiva de ejecución establecida en la directiva de grupo o en el ámbito LocalMachine (todos los usuarios).

Si se establece la directiva de ejecución en Undefined para todos los ámbitos y no se establece la directiva de grupo, estará vigente la directiva de ejecución predeterminada, Restricted, para todos los usuarios del equipo.






Vea también




Tabla de contenido