Windows PowerShell es un robusto lenguaje de scripting para la linea de comandos basado en el lenguaje .NET, cuya principal utilidad es la de permitirnos automatizar tareas administrativas. Considerado como un lenguaje tan versátil y potente como el famoso Perl de UNIX, al llegar a dominar PowerShell queda muy poco de nuestro sistema que no podamos controlar.
PowerShell nos permite ejecutar distintos tipos de scripts entre los cuales se encuentran:
- Archivos con la extensión .ps1 (scripts de PowerShell).
- Programas .NET (cmdlets).
- Programas de PowerShell.
- Otros ejecutables independientes.
Para controlar la ejecución de estos scripts, PowerShell nos ofrece 4 modos de ejecución o directivas:
- Restricted, que es el modo establecido por defecto, en el que la ejecución de scripts se encuentra deshabilitada.
- All Signed, para la ejecución de scripts requiere que estos estén firmados por editor de confianza, añadido a través del editor de certificados.
- Remote Signed, requiere una firma digital proveniente de un editor de confianza para poder ejecutar los scripts, pero sólo para los que han sido descargados de Internet. Los scripts ejecutados localmente no requieren de una firma digital.
- Unrestricted, directiva que permite ejecutar todos los scripts sin requerir de una firma digital y sin importar su procedencia.
Ya que la política de ejecución establecida por defecto es Restricted, para poder habilitar la ejecución de scripts de PowerShell tendremos que cambiarla a cualquiera de los otros modos. A continuación veremos cómo hacerlo.
Habilitar la ejecución de scripts de PowerShell en Windows 8
Para acceder a PowerShell en Windows 8 abrimos la barra Charms con la combinación de teclas Windows + C, seleccionamos la opción Buscar y escribimos Windows PowerShell.
Hacemos clic con el botón derecho del ratón sobre el resultado y seleccionamos la opción Ejecutar como administrador. Respondemos que Si al diálogo de Control de cuentas de usuario.
A continuación veremos la interfaz de PowerShell. Para cambiar la directiva a una que nos permita ejecutar scripts, escribimos el siguiente comando, seguido de la tecla Enter:
Set-ExecutionPolicy Unrestricted
La cónsola nos preguntará si queremos confirmar el cambio, dándonos 3 opciones: Sí (Y), No (N) y Suspender (S). Elegimos la primera opción escribiendo la letra Y y presionando Enter. A partir de aquí estaremos habilitados para ejecutar cualquier tipo de script.
Para cambiar la política de ejecución a cualquiera de las directivas disponibles, sólo tenemos que escribir el comando Set-ExecutionPolicy seguido del nombre de la directiva, y confirmar con la opción Sí (Y). Por ejemplo, para volver a cambiar al modo restringido, escribimos lo siguiente:
Set-ExecutionPolicy Restricted