我试图执行一些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#应用程序中起作用?