我有一个powershell脚本,因为我在服务器上手动执行了它。但我不能在我们的一台服务器上使用C#代码工作。它可以在其他两台计算机上使用代码,但不能在我需要执行它的服务器上运行。
执行脚本的代码:
var process = new Process();
process = Process.Start("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\Powershell.exe", "C:\\CC\\Script\\script.ps1");
我尝试过其他版本,但我们正在运行PowerShell v1.0并且它不支持这些解决方案: https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/
由于代码在两台计算机上运行,但在我们需要使用它的服务器上运行,我检查了执行策略,它是" RemoteSigned"对他们所有人。
任何想法可能是什么?对于PowerShell v1.0,它是否与另一组代码有任何区别,你是否有任何代码我可以使用的代码?还有哪些其他政策可以带来改变?
Thnx提前
答案 0 :(得分:1)
在powershell管理员权限中使用此命令:
Set-ExecutionPolicy Bypass -Force
并且还要注意脚本路径以将其正确传递给C#。
答案 1 :(得分:0)
问题解决了;
管理在Stackoverflow的另一个问题中找到答案,遇到与此人相同的问题:
PowerShell says "execution of scripts is disabled on this system."
x86版本的执行策略未定义。