Cuando se intenta ejecutar un script de PowerShell que no ha sido firmado por un editor de confianza, puede aparecer el siguiente error de seguridad:
«script.ps1 :El archivo path\script.ps1 no se puede cargar. El archivo path\script.ps1 no está firmado digitalmente. No puede ejecutar este script en el sistema actual.»

Este error de seguridad puede producirse cuando la política de ejecución de PowerShell está configurada como Allsigned o Remotesigned y el script no está firmado.

La política de ejecución Allsigned permite la ejecución de todos los scripts de Powershell que están firmados. Antes de ejecutar el script se le pedirá que confirme que confía en el editor que ha firmado el script.

La política de ejecución remota restringe la ejecución de los scripts descargados que no están firmados. Los scripts que se ejecutan desde el equipo local no tienen que estar firmados.

Solución

Hay diferentes métodos para superar este error. Puede optar por firmar el script de PowerShell, cambiar la política de ejecución, omitir la política o desbloquear el archivo para que pueda ejecutarse una vez en esa sesión.

Comprobar la política de ejecución

En primer lugar, compruebe su política de ejecución utilizando el cmdlet Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

El parámetro de la lista en el cmdlet Get-ExecutionPolicy le indica la política de ejecución para cada ámbito.

PS C:\> Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned

La política de ejecución predeterminada para todas las versiones de Windows excepto para Windows 2012 R2 es Restringida. La política de ejecución por defecto en Windows 2012 R2 es RemoteSigned.

Cambiar la política de ejecución de forma permanente

El método más fácil pero poco seguro para deshacerse de este mensaje de error es cambiar la ExecutionPolicy utilizando el cmdlet SetExecutionPolicy. El siguiente comando establece la política de ejecución como no restringida.

PS C:\> Set-ExecutionPolicy unrestricted

Pulse Y para confirmar el cambio cuando se le solicite. El cambio de política se actualiza en el registro y permanecerá hasta que lo cambie de nuevo.

Cambiar la política de ejecución temporalmente

En lugar de cambiar la política de ejecución permanentemente, podría establecer una política diferente para una sola sesión de PowerShell. Esto se hace utilizando el parámetro ExecutionPolicy de powershell.exe

Abra un símbolo del sistema o PowerShell y ejecute el comando:

C:\> powershell.exe -executionpolicy -bypass

El comando anterior abre una sesión de PowerShell con la política de ejecución para esa sesión establecida en Bypass, lo que significa que no se bloquea nada.

Desbloqueo de un archivo descargado

Cuando la política de ejecución es RemoteSigned, los archivos que se descargan de Internet (o de correos electrónicos) se bloquean para proteger la ejecución de scripts no seguros. Si confía en que el contenido del script es seguro, puede desbloquearlo para que se ejecute en su sesión mediante el cmdlet Unblock-File

PS C:\> Unblock-File -Path C:\Downloads\script1.ps1

Una vez que haya cambiado la política de ejecución de forma permanente o temporal para una sesión o un script en particular, puede seguir ejecutando el script, pero antes de hacerlo asegúrese de que el contenido del script no daña su equipo

.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.