在此系统上禁用脚本的执行。 - 但它有它们

时间:2018-03-08 13:58:37

标签: c# asp.net-mvc powershell

我试图执行一些PowerShell。它可以在命令行或Powershell中正常工作。

我的问题在这里和SU的一些帖子中得到了部分回答。如 .ps1 cannot be loaded because the execution of scripts is disabled on this system?  更重要的是https://stackoverflow.com/a/9167524/1221410

只有从C#代码执行此操作时才会出现此问题

这是代码

var command = $"\"{_myPath}\" -ExecutionPolicy ByPass  -imagePath \"{ _imagePath }\" -url \"{_fullUrl}\"";

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "powershell.exe";
psi.Arguments = command;
Process process = new Process();
process.StartInfo = psi;
process.Start();

我加载的powershell脚本只是

Param(
  [string]$imagePath,
  [string]$url
)

$chrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
start-process $chrome $url

错误消息是

  

在此系统上禁用脚本执行

如果我这样做:get-executionpolicy我可以看到它被设置为绕过

如果我将以下内容更改为

psi.Arguments = "start-process chrome.exe www.google.co.uk";

然后它工作正常。所以看来问题是当我尝试执行一个实际的脚本时(根据错误信息)

为什么这只能在我的C#应用​​程序中起作用?

0 个答案:

没有答案