无法在C#代码中的某个服务器上运行PowerShell脚本

时间:2017-01-19 10:59:36

标签: c# powershell

我有一个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提前

2 个答案:

答案 0 :(得分:1)

在powershell管理员权限中使用此命令:

Set-ExecutionPolicy Bypass -Force

并且还要注意脚本路径以将其正确传递给C#。

答案 1 :(得分:0)

问题解决了;

管理在Stackoverflow的另一个问题中找到答案,遇到与此人相同的问题:

PowerShell says "execution of scripts is disabled on this system."

x86版本的执行策略未定义。