Microsoft ha integrado Windows PowerShell como la consola de administración por defecto en sus sistemas operativos tanto de hogar (Windows 10) como corporativos (Windows Server) con el fin de realizar cientos de tareas de una forma simple, segura y totalmente funcional.
Ahora bien, dentro de las tareas que podemos ejecutar con Windows PowerShell es la ejecución de scripts los cuales tiene la tarea de automatizar taras rutinarias o ejecutar una en particular facilitando las acciones administrativas, y aunque esto es algo realmente útil puede conllevar ciertos riesgos ya que un script con contenido malicioso puede llegar a afectar diversos componentes del sistema tales como sus registros o servicios creando un impacto negativo en todo el rendimiento y operatividad de este.
Por esta razón, Microsoft ofrece diversas opciones que como usuarios podemos seleccionar para la ejecución de los scripts, desde habilitarlos todos sin importar su fuente (nada recomendado) hasta restringirlos todos en absoluto.
1. Ver las directivas de ejecución de Windows PowerShell
Microsoft nos provee una serie de directivas de ejecución de Windows PowerShell en todo lo relacionado a los scripts las cuales son.
Para ver todas las directivas de Windows PowerShell podemos ejecutar lo siguiente. Ahora vamos a ver como establecer una nueva directiva para ejecutar de forma correcta un script en Windows PowerShell.
Get-ExecutionPolicy -List
2. Ejecutar script con comando ExecutionPolicy Windows PowerShell
Para hacer uso de esta opción contamos con dos opciones a ejecutar en Windows PowerShell como administradores que son:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned Set-ExecutionPolicy RemoteSigned -Force
Una vez ejecutada alguna de estas líneas podremos validar el resultado usando el cmdlet siguiente:
Get-ExecutionPolicy -List
3. Ejecutar script en Windows PowerShell con Editor de registros
Para este método se recomienda crear una copia de seguridad de los archivos o crear un punto de restauración en caso de algún tipo de fallo, luego usaremos las teclas siguientes y ejecutamos lo siguiente:
+ R
Regedit
En la ventana que será desplegada vamos a la siguiente ruta.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Allí daremos clic derecho sobre “Microsoft.PowerShell” y seleccionamos la opción “Nuevo / Valor de cadena”:
Este nuevo valor será llamado “ExecutionPolicy”:
Daremos doble clic sobre este valor y en el campo “Información del valor” ingresamos “RemoteSigned”:
Pulsamos en Aceptar y veremos que se aplica dicha directiva:
4. Ejecutar script en Windows PowerShell con Políticas de grupo
Esta opción está disponible para las ediciones Pro y Enterprise de Windows 10 y para acceder a ellas usaremos las teclas siguientes y ejecutamos lo siguiente:
+ R
gpedit.msc
Al pulsar Enter será desplegada la siguiente ventana y allí iremos a la siguiente ruta:
- Configuración del equipo
- Plantillas administrativas
- Componentes de Windows
- Windows PowerShell
Allí seleccionamos y abrimos la política llamada “Activar la ejecución de scripts”:
En la ventana desplegada activamos la casilla “Habilitada” y en el campo “Directiva de ejecución” podemos seleccionar alguna de las siguientes opciones. Una vez definida la directiva pulsamos en Aplicar y Aceptar para guardar los cambios.
- Permitir solo scripts firmados
- Permitir scripts locales y scripts remotos firmados
- Permitir todos los scripts
Con alguno de estos métodos será posible hacer uso correcto de los scripts en ambientes Windows.