我尝试从c#运行powershell脚本。

首先,我将ExecutionPolicy设置为无限制,脚本现在从PowerShell ISE运行。

这是我的c#代码:

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);
        }
    }
}

输出为:

Ps1无法加载,因为在此上禁用了运行脚本 系统。要了解更多信息,请参阅about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170。


当前回答

在powershell或cmd中运行此代码

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

其他回答

在管理模式下打开PowerShell并运行以下命令

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

最近,当我试图在netlify上部署一个应用程序时,我遇到了同样的问题:在这个系统上运行-scripts-is-disabled-on-this-system

下面cmd对我有用。

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

如果你正在使用visual studio代码:

打开终端 执行命令Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy无限制 然后执行量角器conf.js命令

这与量角器测试脚本执行相关,我也遇到过同样的问题,它是这样解决的。

在管理模式下打开powershell 并执行以下命令

Set-ExecutionPolicy RemoteSigned

另一个解决方案是Remove ng。从C:\Users%username%\AppData\Roaming\npm\清空npm缓存