Informática
Si ejecutamos scripts de PowerShell, a veces, nos encontraremos con un error con un mensaje parecido a:
“script.ps1 cannot be loaded. The file ruta.fichero.ps1 is not digitally signed. You cannot run this script on the current system. The script will not execute on the system.”
En realidad, se trata de un error de seguridad que se produce habitualmente cuando el script que estamos intentando ejecutar está sin firmar. Aunque hay más casos.
Este es un buen momento para asegurarnos de que el script es de fiar. Si lo es, podemos cambiar el comportamiento del sistema para que lo admita. Eso sí, ten en cuenta que estamos desactivando temporalmente una función de seguridad importante.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Este comando hace que la PowerShell actual se salte la política de ejecución. Si cerramos y volvemos a abrir la sesión de PowerShell la política de seguridad volverá a ser la predeterminada.
Si queremos conocer la execution policy actual podemos ejecutar:
Get-ExecutionPolicy
En vez de Bypass, también tenemos otros modificadores:
Restricted: configuración por defecto que no permite cargar ni ejecutar scripts.
AllSigned: requiere que todos los scripts (incluidos los creados en un ordenador local) estén firmados por un desarrollador de confianza.
RemoteSigned: requiere que todos los scripts y los ficheros de configuración bajados desde internet estén firmados por un desarrollador de confianza.
Unrestricted: permite cargar todos los ficheros de configuración y todos los scripts, pero te puede pedir confirmación antes de ejecutar los scripts no firmados bajados de internet.
Bypass: no se bloquea nada ni tampoco saltarán mensajes ni alarmas.
Undefined: restaura la “execution policy” por defecto de la sesión.
Desbloquear un fichero descargado
Lo que hemos visto arriba es una solución temporal. Cuando la política de ejecución está configurada en RemoteSigned (o más estricta), los ficheros que descargamos de internet o de emails están bloqueados (blocked) por defecto.
Si nos fiamos del contenido, lo que tenemos que hacer es desbloquearlos (unblock) ejecutando.
Unblock-File -Path C:\Downloads\script1.ps1
También podemos hacerlo de manera gráfica haciendo clic derecho encima del fichero .PS1, en propiedades y eligiendo la casilla de Desbloqueo (Unblock).
Así los podremos ejecutar sin tener que cambiar temporalmente la policy.
Te puede interesar...
Un AMD Ryzen 9 3950X overclockeado a 5 GHz destroza al Intel i9-9960X que lo dobla en precio