我尝试从c#运行powershell
脚本。
首先我将ExecutionPolicy
设置为Unrestricted
,脚本现在从PowerShell ISE
开始运行。
现在这是我的代码:
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
答案 0 :(得分:24)
在您的Powershell或cmd中运行此代码
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
答案 1 :(得分:9)
如果您使用的是Visual Studio代码:
这与量角器测试脚本的执行相关,我也遇到了同样的问题,并且这样解决了。
答案 2 :(得分:8)
这可能是由于当前用户有一个未定义的ExecutionPolicy
。
您可以尝试以下方法:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
答案 3 :(得分:7)
以下三个步骤可用于修复由于系统错误而导致运行脚本被禁用的情况
第一步:要解决此类问题,我们必须以管理员模式启动Power Shell。
Step2:键入以下命令set-ExecutionPolicy RemoteSigned 步骤3:按Y确认。
访问以下内容以获取更多信息https://youtu.be/J_596H-sWsk
答案 4 :(得分:6)
我只是在终端中尝试这个 cmd 并且我的问题已经解决
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
注意:不要将 CurrentUser 更改为您的用户名
答案 5 :(得分:3)
以管理员模式打开Windows powershell并运行以下命令及其工作方式VOILA!
Set-ExecutionPolicy RemoteSigned
答案 6 :(得分:3)
将此代码粘贴到您的终端中
(Visual Studio Code 终端或您正在使用的任何 IDE)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
按回车
享受:)
答案 7 :(得分:2)
另一种解决方案是从目录C:\ Users%username%\ AppData \ Roaming \ npm \中删除ng.ps1并清除npm缓存
答案 8 :(得分:2)
打开 VS Code 终端并运行以下脚本:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
答案 9 :(得分:1)
PowerShell执行策略默认设置为“受限”。您可以使用Set-ExecutionPolicy cmdlet更改PowerShell执行策略。要运行外部脚本,请将策略设置为RemoteSigned。
PS C:> Set-ExecutionPolicy RemoteSigned 以下是PowerShell中四种不同执行策略的列表
受限制–无法运行任何脚本。 AllSigned –仅可运行由受信任的发布者签名的脚本。 RemoteSigned –下载的脚本必须由受信任的发布者签名。 不受限制–所有Windows PowerShell脚本都可以运行。
答案 10 :(得分:1)
以管理模式打开Powershell 并运行以下命令
Set-ExecutionPolicy RemoteSigned
答案 11 :(得分:0)
我认为您可以在管理模式或命令提示符下使用Powershell。