Você está na página 1de 4

3/11/2016

CursobsicodePowershell:Ejecucindescripts

@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Curso bsico de Powershell: Ejecucin de scripts


Roberto Orayen

9 julio, 2013

PowerShell

7,121 Vistas

Cuando queremos ejecutar scripts de Powershell en un equipo con Windows tenemos que tener en
cuenta la directiva de seguridad que se aplica para poder ejecutar scripts y comandos.
Si queremos ejecutar un simple script como el siguiente:

Ejemplo bsico
Nos encontramos con que no podemos ejecutarlo.

Ejecucin denegada
Vamos a explicar por qu. Las directivas de ejecucin de Windows PowerShell nos indican si podemos
ejecutar scripts o no con el objetivo de controlar que sabemos que script estamos ejecutando. Hay que
indicar que las directivas no se preocupan del contenido del script sino de si se puede ejecutar o no. Las
directivas pueden tomar los siguientes valores:
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
http://www.maquinasvirtuales.eu/cursobasicodepowershellejecuciondescripts/

1/4

3/11/2016

CursobsicodePowershell:Ejecucindescripts

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.

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.
MachinePolicy y UserPolicy: se establecen a nivel de GPO y no se pueden modificar desde una sesin
PowerShell.
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.

http://www.maquinasvirtuales.eu/cursobasicodepowershellejecuciondescripts/

2/4

3/11/2016

CursobsicodePowershell:Ejecucindescripts

LocalMachine: La directiva de ejecucin afecta a todos los usuarios del equipo actual. Se almacena en la
subclave HKEY_LOCAL_MACHINE del Registro.
Obtener la directiva de ejecucin
Obtenemos las directivas con el comando Get-ExecutionPolicy.
1 GetExecutionPolicy

Si queremos obtener todas las directivas utilizamos el parmetro -List


1 GetExecutionPolicyList

Obteniendo la directiva
Cambiar la directiva
Para poder realizar un cambio en la directiva utilizamos el cmdlet Set-ExecutionPolicy
Por defecto, si no indicamos el parmetro Scope, se cambia en el mbito LocalMachine

Cambiando la diectiva
Pero indicando el parmetro Scope seleccionamos en que mbito queremos que se ejecute.

Cambiando la directiva

Cambiar la seguridad para la ejecucin de un script concreto.


Se puede dar la situacin de que queramos ejecutar un script y la directiva configurada haga que no se
ejecute directamente sino que nos muestre un mensaje como el siguiente:
1
2
3
4
5
6
7

Advertenciadeseguridad
Ejecuteslolosscriptsdeconfianza.LosarchivosprocedentesdeInternet
puedensertiles,peroalgunosarchivospodrandaarsuequipo.Desea
ejecutar
Script.ps1?
[N]Noejecutar[Z]Ejecutarunavez[U]Suspender[?]Ayuda
(elvalorpredeterminadoes"N"):

Podemos ejecutar el script con el parmetro -ExecutionPolicy para definir la directiva para esa ejecucin,
por ejemplo:
1 powershell.exeExecutionPolicyBypassEjemplo.ps1

http://www.maquinasvirtuales.eu/cursobasicodepowershellejecuciondescripts/

3/4

3/11/2016

CursobsicodePowershell:Ejecucindescripts

Cambiando la directiva en la ejecucin


De esta forma podemos saltarnos la advertencia de seguridad, til en el caso de tener por ejemplo ese
script como tarea programada y no queremos cambiar la directiva a nivel de mquina.

Temas
1. Introduccin
2. Instalacin y requerimientos
3. Ayuda
4. Ampliando la funcionalidad
5. Canalizacin
6. Operadores
7. Comandos bsicos
8. Formato de salida
9. Importar y Exportar datos
10. Arrays y HashTables
11. Ejecucin de Scripts
12. Providers
13. Trabajos
14. Scripts y funciones
15. Gestin de Errores

Blog Maquinas Virtuales

http://www.maquinasvirtuales.eu/cursobasicodepowershellejecuciondescripts/

4/4

Você também pode gostar