我尝试powershell从c#运行脚本.
首先,我设置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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
无法加载ps1,因为在此系统上禁用了运行脚本.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=135170上的 about_Execution_Policies .
Tom*_*Tom 54
这可能是由于当前用户未定义ExecutionPolicy.
您可以尝试以下方法:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)
Sun*_*nny 48
在管理模式下打开powershell并运行以下命令
Set-ExecutionPolicy RemoteSigned
小智 38
转到系统设置 -> 更新和安全 -> 对于开发人员 -> PowerShell
应用以下选项
Har*_*jah 37
在您的 powershell 或 cmd 中运行此代码
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Run Code Online (Sandbox Code Playgroud)
小智 34
如果您使用的是 Visual Studio 代码:
这与量角器测试脚本执行相关,我遇到了同样的问题,它是这样解决的。
Moh*_*tab 16
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy 无限制
回答 Y 或 A(如果您想授予所有用户访问权限)
现在打开命令提示符或 vs code 或任何你喜欢的东西来运行你的项目
Day*_*iye 12
将此代码粘贴到您的终端中
(Visual Studio Code 终端或您正在使用的任何 IDE)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)
按回车键
享受 :)
dr *_*rma 10
以下三个步骤用于修复在此系统错误上禁用运行脚本
Step1:为了解决这类问题,我们必须以管理员模式启动power shell。
步骤 2:键入以下命令 set-ExecutionPolicy RemoteSigned 步骤 3:按 Y 进行确认。
访问以下了解更多信息https://youtu.be/J_596H-sWsk
在终端(Visual Studio Code 终端或您正在使用的任何 IDE)中尝试此命令,问题将解决
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
Run Code Online (Sandbox Code Playgroud)
注意:不要将 CurrentUser 更改为您的用户名
小智 8
在管理模式下打开 PowerShell 并运行以下命令
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)
小智 7
这是我能解决这个问题的最好方法
如下:
首先,以管理员身份运行打开 PowerShell。
然后,在 PowerShell 中运行此命令
设置-ExecutionPolicy -ExecutionPolicy RemoteSigned
之后输入 Y 并按 Enter 键。
重新打开或重新启动
完毕!工作顺利!
小智 6
PowerShell 执行策略默认设置为“受限”。您可以使用 Set-ExecutionPolicy cmdlet 更改 PowerShell 执行策略。要运行外部脚本,请将策略设置为 RemoteSigned。
\n\nPS C:> Set-ExecutionPolicy RemoteSigned \n下面是 PowerShell 中四种不同执行策略的列表
\n\n受限 \xe2\x80\x93 无法运行任何脚本。\nAllSigned \xe2\x80\x93 只能运行受信任发布者签名的脚本。\nRemoteSigned \xe2\x80\x93 下载的脚本必须由受信任发布者签名。 \n无限制 \xe2\x80\x93 可以运行所有 Windows PowerShell 脚本。
\n小智 6
打开 VS Code 终端并运行以下脚本:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)