Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t从C#代码在我们的一台服务器上运行PowerShell脚本_C#_Powershell - Fatal编程技术网

Can';t从C#代码在我们的一台服务器上运行PowerShell脚本

Can';t从C#代码在我们的一台服务器上运行PowerShell脚本,c#,powershell,C#,Powershell,我有一个powershell脚本,它可以工作,因为我已经在服务器上手动执行了它。但我无法从我们其中一台服务器上的C#代码让它工作。它可以在另外两台计算机上使用代码,但不能在需要执行代码的服务器上使用 执行脚本的代码: var process = new Process(); process = Process.Start("C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\Powershell.exe", "C:\\CC\\Scrip

我有一个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,它不支持以下解决方案:

由于代码可以在两台计算机上运行,但不能在我们需要使用它的服务器上运行,因此我检查了执行策略,并在所有计算机上都进行了“远程签名”

你知道还有什么吗?它与另一组代码有什么区别吗?您有没有什么好的示例,说明我可以使用哪些代码来代替PowerShell v1.0?有没有其他政策能起到作用


Thnx提前

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

Set-ExecutionPolicy Bypass -Force
还要注意脚本路径,以便将其正确传递给C#。

问题已解决

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


x86版本的执行策略未定义

你收到错误信息了吗?我没有确切的错误信息。但是我在C代码中打印了标准错误,它只是说这个过程从未开始过。Allso脚本本身创建了一个包含进程信息的文件夹,但没有创建任何文件夹。因此,根本不会执行脚本。不过,我的catch块中没有任何异常,退出代码只给了我一个“1”。运行脚本的帐户在该服务器上是否具有相应的权限?服务器事件日志中有任何适用的内容吗?这是我在服务器上永远不会做的事情。特别是不要绕过。这是在我们的一个客户服务器上,他们永远不会接受这样的更改。当我们在本地尝试时,执行策略是相同的,并且可以工作,所以这应该不是必需的?与其在全局级别上执行,只需在参数
“-ExecutionPolicy Bypass C:\\CC\\Script\\Script.ps1”
中的命令传递的单个执行中执行,并且它将仅为该单个会话绕过策略。