Cómo ejecutar scripts no firmados en PowerShell

Hola, soy Francisco, del equipo de soporte a Sistema Operativo. Hoy vamos a ver cómo poder ejecutar scripts no firmados en PowerShell.

En alguna ocasión crearemos algún script en Powershell y a la hora de ejecutar nos puede salir un mensaje como este:

PS C:\Windows\system32> C:\TOOLS\SPLITTEXT.PS1

No se puede cargar el archivo C:\TOOLS\SPLITTEXT.PS1. El archivo C:\TOOLS\SPLITTEXT.PS1 no está firmado digitalmente.

El sistema operativo para protegernos de la ejecución de código malicioso impedirá en primera instancia la ejecución de cualquier script.

Para verificar como está configurado el sistema operativo en lo que se refiere a la directiva de ejecución de script, escribir este comando:

Get-ExecutionPolicy

Pero si realmente necesitamos ejecutar el script porque nosotros somos los creadores, podemos permitir temporalmente permitir la ejecución con el comando (habiendo iniciado powershell como administrador)

Set-ExecutionPolicy RemoteSigned

[S] Sí [N] No [U] Suspender [?] Ayuda (el valor predeterminado es "S"): s

(Este comando permitirá los script en la maquina local)

Si queremos permitir la ejecución de todos aunque no estén en local:

Set-ExecutionPolicy Unrestricted

[S] Sí [N] No [U] Suspender [?] Ayuda (el valor predeterminado es "S"): s

Y si finalmente queremos dejar como estaba en un principio (o para no permitir la ejecución de nada que este firmado)

Set-ExecutionPolicy AllSigned

[S] Sí [N] No [U] Suspender [?] Ayuda (el valor predeterminado es "S"): s

Si estamos interesados en conocer como firmar nuestros scripts consultar:

     Get-Help About_Signing

Un saludo,

- Francisco Fraile Cortijo