Cuando intenta ejecutar un script de PowerShell que no ha sido firmado por Trusted Publisher, puede obtener el siguiente error de seguridad.
<El archivo de script de PowerShell> no está firmado digitalmente. No puede ejecutar
este script en el sistema actual. Para obtener más información sobre la ejecución de scripts y la configuración de la directiva de ejecución, consulte
sobre_políticas_de_ejecución en http://go.microsoft.com/fwlink/?LinkID=135170.
¿Cómo resolver el error El script de PowerShell no está firmado digitalmente?
Hay algunas resoluciones para este problema. Puede firmar el script de PowerShell que desea ejecutar, 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
Puede ejecutar el cmdlet Get-ExecutionPolicy para obtener su política de ejecución.
También puede añadir el parámetro -list para obtener la política de ejecución de cada ámbito.
Cambiar la política de ejecución de forma permanente
El método más fácil pero no seguro para deshacerse de este mensaje de error es cambiar la ExecutionPolicy utilizando el cmdlet Set-ExecutionPolicy y establecer la política de ejecución sin restricciones.
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Cambiar la política de ejecución temporalmente
Para cambiar la política de ejecución temporalmente, puede utilizar el cmdlet Set-ExecutionPolicy con la configuración ByPass.
Set-ExecutionPolicy -ExecutionPolicy ByPass
A continuación se detallan los valores aceptables para el parámetro -ExecutionPolicy:
- Restringido. No carga archivos de configuración ni ejecuta scripts. Restricted es la política de ejecución por defecto.
- AllSigned. Requiere que todos los scripts y archivos de configuración sean firmados por un editor de confianza, incluyendo los scripts que escriba en el equipo local.
- RemoteSigned. Requiere que todos los scripts y archivos de configuración descargados de Internet estén firmados por un editor de confianza.
- Sin restricciones. Carga todos los archivos de configuración y ejecuta todos los scripts. Si ejecuta un script no firmado que se descargó de Internet, se le pide permiso antes de que se ejecute.
- Bypass. No se bloquea nada y no hay advertencias ni avisos.
- Indefinido. Elimina la política de ejecución actualmente asignada del ámbito actual. Este parámetro no eliminará una política de ejecución que esté establecida en un ámbito de la política de grupo.
El ámbito predeterminado para el comando Set-ExecutionPolicy es LocalMachine. También puede especificar en qué ámbito se establecerá la política añadiendo el parámetro -Scope. A continuación se detallan los ámbitos que se pueden establecer:
- Proceso: La política de ejecución afecta sólo al proceso actual de PowerShell.
- CurrentUser: La política de ejecución afecta sólo al usuario actual.
- LocalMachine: La política de ejecución afecta a todos los usuarios del equipo.
Para eliminar una política de ejecución de un ámbito concreto, establezca la política de ejecución de ese ámbito como Undefined.