c# - help - .ps1 no se puede cargar porque la ejecución de scripts está deshabilitada en este sistema?
no está firmado digitalmente. no se puede ejecutar este script en el sistema actual. (5)
El problema es que la política de ejecución se establece por usuario. Tendrá que ejecutar el siguiente comando en su aplicación cada vez que lo ejecute para que funcione:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Probablemente también haya una forma de configurar esto para el usuario ASP.NET, pero de esta manera significa que no está abriendo todo su sistema, solo su aplicación.
( Source )
Esta pregunta ya tiene una respuesta aquí:
Ejecuto este código para ejecutar power shell desde una aplicación asp.net:
System.Management.Automation.Runspaces.Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();
runspace.Open();
System.Management.Automation.Runspaces.Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(@"//servername/path");
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
Pero estoy obteniendo el error:
.ps1 no se puede cargar porque la ejecución de scripts está deshabilitada en este sistema. Consulte "get-help about_signing" para obtener más detalles.
El mismo código se ejecuta correctamente desde un símbolo del sistema o una aplicación de Windows (winform).
Existen ciertos escenarios en los que puede seguir los pasos sugeridos en las otras respuestas, verificar que la Política de Ejecución esté configurada correctamente y que sus scripts fallen. Si esto le sucede, probablemente esté en una máquina de 64 bits con versiones de PowerShell de 32 bits y de 64 bits, y la falla está ocurriendo en la versión que no tiene establecida la política de ejecución. La configuración no se aplica a ambas versiones , por lo que debe establecerla explícitamente dos veces.
Busque en su directorio de Windows System32 y SysWOW64.
Repita estos pasos para cada directorio:
- Navegue a WindowsPowerShell / v1.0 y ejecute powershell.exe
Verifique la configuración actual de ExecutionPolicy:
Get-ExecutionPolicy -List
Configure ExecutionPolicy para el nivel y el alcance que desee, por ejemplo:
Set-ExecutionPolicy -Scope LocalMachine Unrestricted
Tenga en cuenta que es posible que deba ejecutar PowerShell como administrador según el alcance para el que esté intentando establecer la política.
Puede leer mucho más aquí: ejecutar scripts de Windows PowerShell
Su secuencia de comandos no se puede ejecutar debido a la política de ejecución .
Necesita ejecutar Powershell como administrador y configurarlo en la PC del cliente para Sin restricciones. Puede hacerlo llamando a Invoke con
Set-ExecutionPolicy Unrestricted
Tuve un problema similar y noté que el cmd predeterminado en Windows Server 2012 ejecutaba el x64.
Para Windows 7, Windows 8, Windows Server 2008 R2 o Windows Server 2012, ejecute los siguientes comandos como administrador:
x86
Abra C: / Windows / SysWOW64 / cmd.exe Ejecute el comando: powershell Set-ExecutionPolicy RemoteSigned
x64
Abra C: / Windows / system32 / cmd.exe Ejecute el comando powershell Set-ExecutionPolicy RemoteSigned
Puedes verificar el modo usando
En CMD: echo% PROCESSOR_ARCHITECTURE% en Powershell: [Environment] :: Is64BitProcess
Espero que esto te ayude.
necesitas ejecutar set-executionpolicy:
Set-ExecutionPolicy Unrestricted <-- Will allow unsigned powershell scripts to run.
Set-ExecutionPolicy Restricted <-- Will not allow unsigned powershell scripts to run.
Set-ExecutionPolicy RemoteSigned <-- Will allow only remotely signed powershell scripts to run.
¡Espero que esto ayude!