Intento ejecutar el powershell
script desde c #.
Primero me puse el ExecutionPolicy
que Unrestricted
y el script se está ejecutando ahora de PowerShell ISE
.
Ahora este es c # mi código:
class Program
{
private static PowerShell ps;
static void Main(string[] args)
{
ps = PowerShell.Create();
string ps1File = Path.Combine(Environment.CurrentDirectory, "script.ps1");
ExecuteScript(ps1File);
Console.ReadLine();
}
static void ExecuteScript(string script)
{
try
{
ps.AddScript(script);
Collection<PSObject> results = ps.Invoke();
Console.WriteLine("Output:");
foreach (var psObject in results)
{
Console.WriteLine(psObject);
}
Console.WriteLine("Non-terminating errors:");
foreach (ErrorRecord err in ps.Streams.Error)
{
Console.WriteLine(err.ToString());
}
}
catch (RuntimeException ex)
{
Console.WriteLine("Terminating error:");
Console.WriteLine(ex.Message);
}
}
}
Y la salida es:
ps1 no se puede cargar porque la ejecución de scripts está deshabilitada en este sistema. Para obtener más información, consulte about_Execution_Policies en http://go.microsoft.com/fwlink/?LinkID=135170 .
c#
powershell
usuario979033
fuente
fuente
Get-ExecutionPolicy -List
y edite su pregunta con los resultados. Este comando le mostrará los diferentes Scope y su configuración de ExecutionPolicy.Respuestas:
Esto podría deberse a que el usuario actual tiene un undefined
ExecutionPolicy
.Puedes probar lo siguiente:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
fuente
Powershell
, no en cmd de Windows.Unrestricted
significa que puede ejecutar todos los scripts. Otra opción para esto sería establecer la política de ejecuciónRemoteSigned
como lo permita,Allow local scripts and remote signed scripts
pero dependiendo de la aplicación y de lo que esté haciendo, es posible que aún arroje el mismo error. Creo que su enfoque es válido en términos de seguridad y siempre puede leer cuál es la política antes de usarlaGet-ExecutionPloicy
. Aunque dicho esto, el alcance es el usuario actual, por lo que el riesgo en mi opinión es pequeño. Espero que esto ayude.Abra powershell en modo administrativo y ejecute el siguiente comando
fuente
Ejecute este código en su powershell o cmd
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
fuente
Si está utilizando código de Visual Studio:
Esto está relacionado con la ejecución del script de prueba de transportador relacionado y enfrenté el mismo problema y se resolvió así.
fuente
Los siguientes tres pasos se utilizan para corregir que los scripts en ejecución estén deshabilitados en este error del sistema
Paso 1: Para solucionar este tipo de problema, tenemos que iniciar Power Shell en modo administrador.
Paso 2: Escriba el siguiente comando set-ExecutionPolicy RemoteSigned Paso 3: Presione Y para su Confirmación.
Visite lo siguiente para obtener más información https://youtu.be/J_596H-sWsk
fuente
La política de ejecución de PowerShell está configurada de forma predeterminada como Restringida. Puede cambiar las políticas de ejecución de PowerShell con el cmdlet Set-ExecutionPolicy. Para ejecutar un script externo, establezca la política en RemoteSigned.
PS C:> Set-ExecutionPolicy RemoteSigned A continuación se muestra la lista de cuatro políticas de ejecución diferentes en PowerShell
Restringido: no se pueden ejecutar scripts. AllSigned: solo se pueden ejecutar scripts firmados por un editor de confianza. RemoteSigned: los scripts descargados deben estar firmados por un editor de confianza. Sin restricciones: se pueden ejecutar todos los scripts de Windows PowerShell.
fuente
abra Windows powershell en modo administrador y ejecute el siguiente comando y su trabajo VOILA !!
fuente
Otra solución es Eliminar ng.ps1 del directorio C: \ Users% username% \ AppData \ Roaming \ npm \ y borrar la caché de npm
fuente
Creo que puede usar PowerShell en modo administrativo o en el símbolo del sistema.
fuente