You are on page 1of 7

TEMA

about_Execution_Policies
DESCRIPCIN BREVE
Describe las directivas de ejecucin de Windows PowerShell y
explica cmo se administran.
DESCRIPCIN DETALLADA
Las directivas de ejecucin de Windows PowerShell permiten
determinar las condiciones en que Windows PowerShell carga los
archivos de configuracin y ejecuta los scripts.
Se puede establecer una directiva de ejecucin para el equipo
local, para el usuario actual o para una sesin determinada.
Tambin se puede utilizar una configuracin de Directiva de grupo para
establecer la directiva de ejecucin de los equipos y usuarios.
Las directivas de ejecucin del equipo local y del usuario actual se
almacenan en el Registro. No es necesario establecer las directivas
de ejecucin en el perfil de Windows PowerShell. La directiva de
ejecucin de una sesin determinada se almacena solamente en la
memoria y se pierde cuando se cierra la sesin.
La directiva de ejecucin no es un sistema de seguridad que
restringe las acciones del usuario.
Por ejemplo, los usuarios pueden sortear con facilidad una directiva
escribiendo el contenido del script en la lnea de comandos cuando no
pueden ejecutar un script. En lugar de ello, la directiva de
ejecucin ayuda a los usuarios a establecer reglas bsicas y evita que
se infrinjan involuntariamente.
DIRECTIVAS DE EJECUCIN DE WINDOWS POWERSHELL
------------------------------------Las directivas de ejecucin de Windows PowerShell son:
"Restricted" es la directiva predeterminada.
Restricted
- Directiva de ejecucin predeterminada.
- Admite comandos individuales, pero no permite ejecutar
scripts.
- Evita que se ejecuten todos los archivos de script,
incluidos los archivos de formato y configuracin
(.ps1xml), los archivos de script de mdulos (.psm1) y los
perfiles de Windows PowerShell (.ps1).
AllSigned
- Permite ejecutar scripts.
- Requiere que todas los scripts y archivos de
configuracin estn firmados por un editor de
confianza, incluidos los scripts que se escriben en un
equipo local.
- Pide confirmacin antes de ejecutar los scripts de
editores que no se han clasificado para indicar si son de

confianza o no.
- Se corre el riesgo de ejecutar scripts sin firmar
procedentes de orgenes distintos de Internet y
malintencionados, aunque estn firmados.
RemoteSigned
- Permite ejecutar scripts.
- Requiere una firma digital de un editor de confianza en
scripts y archivos de configuracin descargados de Internet
(tambin desde programas de correo electrnico y de mensajera
instantnea).
- No requiere firma digital en los scripts ejecutados y
escritos en el equipo local (que no se hayan descargado desde
Internet).
- Se corre el riesgo de ejecutar scripts malintencionados,
aunque estn firmados.
Unrestricted
- Permite ejecutar scripts sin firma. (Se corre el riesgo de
ejecutar scripts malintencionados.)
- Advierte al usuario antes de ejecutar scripts y archivos de
configuracin que se descargan de Internet.
Bypass
- No se bloquea nada y no se muestran advertencias ni
mensajes.
- Esta directiva de ejecucin est diseada para
configuraciones en las que un script de Windows
PowerShell est integrado en una aplicacin mayor o para
configuraciones en que Windows PowerShell constituye la base de un
programa que tiene su propio modelo de seguridad.
Undefined
- No hay ninguna directiva de ejecucin establecida en el
mbito actual.
- Si la directiva de ejecucin es Undefined en todos los
mbitos, la directiva de ejecucin efectiva es
Restricted, que es la directiva de ejecucin predeterminada.
Nota: en los sistemas que no distinguen las rutas de la Convencin de
nomenclatura universal (UNC) de las rutas de Internet, puede ser que l
a
directiva RemoteSigned no permita la ejecucin de scripts
identificados por una ruta UNC.

MBITO DE EJECUCIN DE LAS DIRECTIVAS


---------------------Se puede establecer una directiva de ejecucin que sea efectiva
solamente en un mbito determinado.

Los valores vlidos de Scope son Process, CurrentUser y LocalMachine.


LocalMachine es el valor predeterminado cuando se establece una
directiva de ejecucin.
Los valores de Scope se muestran por orden de precedencia.
- Process
La directiva de ejecucin afecta solamente a la sesin
actual (el proceso actual de Windows PowerShell). La
directiva de ejecucin se almacena en la variable de
entorno de $PSExecutionPolicyPreference. Este valor se
elimina cuando se cierra la sesin en la que se establece la
directiva.
- CurrentUser
La directiva de ejecucin afecta solamente al usuario actual.
Se almacena en la subclave HKEY_CURRENT_USER del Registro.
- LocalMachine
La directiva de ejecucin afecta a todos los usuarios
del equipo actual. Se almacena en la subclave
HKEY_LOCAL_MACHINE del Registro.
La directiva que tiene precedencia surte efecto en la sesin
actual aunque se haya establecido una directiva ms restrictiva
en un nivel de precedencia inferior.
Para obtener ms informacin, vea Set-ExecutionPolicy.

OBTENER LA DIRECTIVA DE EJECUCIN


-----------------------------Para obtener la directiva de ejecucin de Windows PowerShell que
est en vigor en la sesin actual, se utiliza el cmdlet
Get-ExecutionPolicy.
El comando siguiente obtiene la directiva de ejecucin actual:
get-executionpolicy
Para obtener todas las directivas de ejecucin que afectan a la sesin
actual y mostrarlas por orden de precedencia, escriba:
get-executionpolicy -list
El resultado se parecer a la salida del ejemplo siguiente:
Scope
----MachinePolicy
UserPolicy
Process
CurrentUser
LocalMachine

ExecutionPolicy
--------------Undefined
Undefined
Undefined
RemoteSigned
AllSigned

En este caso, la directiva de ejecucin efectiva es RemoteSigned


porque la directiva de ejecucin correspondiente al usuario

actual tiene precedencia sobre la directiva de ejecucin


establecida para el equipo local.
Para obtener la directiva de ejecucin establecida para un mbito
determinado, se utiliza el parmetro Scope de Get-ExecutionPolicy.
Por ejemplo, el comando siguiente obtiene la directiva de
ejecucin para el mbito del usuario actual.
get-executionpolicy -scope CurrentUser

CAMBIAR LA DIRECTIVA DE EJECUCIN


-----------------------------Para cambiar la directiva de ejecucin de Windows PowerShell en
el equipo, se utiliza el cmdlet Set-ExecutionPolicy.
El cambio surte efecto de inmediato; no es necesario reiniciar Windows
PowerShell.
Si la directiva de ejecucin se establece para el equipo local (valor
predeterminado) o para el usuario actual, el cambio se guarda en el
Registro y permanece efectivo hasta que se vuelva a cambiar.
Si la directiva de ejecucin se establece para el proceso actual,
no se guarda en el Registro. Se conserva hasta que se cierran el
proceso actual y sus procesos secundarios.
Nota: en Windows Vista y en las versiones posteriores de Windows, para
ejecutar comandos que modifican la directiva de ejecucin del equipo loc
al
(valor predeterminado), es preciso iniciar Windows PowerShell con la
opcin "Ejecutar como administrador".
Para cambiar la directiva de ejecucin, escriba:
Set-ExecutionPolicy <nombre-de-la-directiva>
Por ejemplo:
Set-ExecutionPolicy RemoteSigned

Para establecer la directiva de ejecucin en un mbito


determinado, escriba:
Set-ExecutionPolicy <nombre-de-la-directiva> -scope <mbito>
Por ejemplo:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Aunque se ejecute correctamente, puede suceder que un comando

para cambiar una directiva no cambie la directiva de ejecucin


efectiva.
Por ejemplo, un comando que establece la directiva de ejecucin
del equipo local puede ejecutarse correctamente pero ser
invalidado por la directiva de ejecucin correspondiente al
usuario actual.

QUITAR LA DIRECTIVA DE EJECUCIN


---------------------------Para quitar la directiva de ejecucin de un mbito determinado,
se establece el valor de la directiva de ejecucin en Undefined.
Por ejemplo, para quitar la directiva de ejecucin para todos los
usuarios del equipo local, escriba:
set-executionpolicy Undefined
O bien:
set-executionpolicy Undefined -scope LocalMachine
Si no hay ninguna directiva de ejecucin establecida en ningn
mbito, la directiva de ejecucin efectiva es Restricted, que es
el valor predeterminado.

ESTABLECER UNA DIRECTIVA DE EJECUCIN EN POWERSHELL.EXE


----------------------------------------El parmetro ExecutionPolicy de PowerShell.exe se puede utilizar
a fin de establecer una directiva de ejecucin para una nueva
sesin de Windows PowerShell.
La directiva afecta solamente a la sesin actual y sus sesiones
secundarias.
Para establecer la directiva de ejecucin de una nueva sesin, debe
iniciarse Windows PowerShell en la lnea de comandos (como Cmd.exe o
Windows PowerShell) y, a continuacin, se utiliza el parmetro
ExecutionPolicy de PowerShell.exe para establecer la directiva de
ejecucin.
Por ejemplo:
powershell.exe -executionpolicy -allsigned
La directiva de ejecucin que se establece no se almacena en el Registro.
En lugar de ello, se almacena en la variable de entorno de
$PSExecutionPolicyPreference. La variable se elimina al cerrar la
sesin en la que se ha establecido la directiva.
Durante la sesin, la directiva de ejecucin que se ha
establecido para la sesin tiene precedencia sobre una directiva de
ejecucin que est establecida en el Registro para el equipo local o
el usuario actual. Sin embargo, no tiene precedencia sobre la directiva
de ejecucin establecida mediante una configuracin de Directiva de grupo
(explicada ms adelante).

UTILIZAR LA DIRECTIVA DE GRUPO PARA ADMINISTRAR LAS DIRECTIVAS DE EJECUCIN


------------------------------------------La opcin de activacin de la ejecucin de scripts de la
Directiva de grupo se puede utilizar para administrar la directiva de
ejecucin de los equipos de la empresa. La configuracin de la
Directiva de grupo invalida las directivas de ejecucin establecidas
en todos los mbitos de Windows PowerShell.
La opcin de activacin de la ejecucin de scripts de la
directiva funciona como sigue:
-- Si se deshabilita la activacin de la ejecucin de scripts,
los scripts no se ejecutan. Equivale a la directiva de ejecucin
"Restricted".
-- Si se habilita la activacin de la ejecucin de script, se puede
seleccionar una directiva de ejecucin. La configuracin de la
Directiva de grupo es equivalente a la configuracin de directiva de
ejecucin siguiente.
Directiva de grupo
-----------Permitir todos los scripts.

Directiva de ejecucin
---------------Unrestricted

Permitir los scripts locales


y los remotos firmados.

RemoteSigned

Permitir solo scripts firmados.

AllSigned

-- Si la activacin de la ejecucin de scripts no se


configura, no surte efecto. La directiva de ejecucin
establecida en Windows PowerShell es la efectiva.
El archivo PowerShellExecutionPolicy.adm agrega la directiva de
activacin de la ejecucin de script a los nodos Configuracin
del equipo y Configuracin de usuario del Editor de directivas de
grupo en las rutas de acceso siguientes.
Para Windows XP y Windows Server 2003:
Plantillas administrativas\Componentes de Windows\Windows
PowerShell
Para Windows Vista y versiones posteriores de Windows:
Plantillas administrativas\Plantillas administrativas
clsicas\Componentes de Windows\Windows PowerShell
Las directivas establecidas en el nodo Configuracin del equipo tienen
precedencia sobre las establecidas en el nodo Configuracin de usuario.
El archivo PowerShellExecutionPolicy.adm est disponible en el
Centro de descarga de Microsoft. Para obtener ms informacin, vea
"Administrative Templates for Windows PowerShell" en
http://go.microsoft.com/fwlink/?LinkId=131786.
PRECEDENCIA DE LAS DIRECTIVAS DE EJECUCIN

--------------------------Al determinar la directiva de ejecucin efectiva para una sesin,


Windows PowerShell evala las directivas de ejecucin en el orden de
precedencia siguiente:
-

Directiva de grupo: Configuracin del equipo


Directiva de grupo: Configuracin de usuario
Directiva de ejecucin: Process (o PowerShell.exe
ExecutionPolicy) Directiva de ejecucin: CurrentUser
Directiva de ejecucin: LocalMachine

ADMINISTRAR SCRIPTS FIRMADOS Y SIN FIRMAR


---------------------------------Si la directiva de ejecucin de Windows PowerShell es
RemoteSigned, Windows PowerShell no ejecutar scripts sin firma
descargados desde Internet (ni desde programas de correo electrnico y
mensajera instantnea).
Se puede firmar el script o bien optar por ejecutar un script sin
firmar sin cambiar la directiva de ejecucin.
Para obtener ms informacin, vea about_Signing.
VEA TAMBIN
Get-ExecutionPolicy
Set-ExecutionPolicy
about_Signing
"Administrative Templates for Windows PowerShell"
(http://go.microsoft.com/fwlink/?LinkId=131786)

You might also like