我有一个 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,我可以使用哪些代码来代替,您有什么好的示例吗?还有其他可以带来改变的政策吗?
提前致谢
最佳答案
在 powershell 管理员权限下使用此命令:
Set-ExecutionPolicy Bypass -Force
还要注意脚本路径,将其正确传递给 C#。
关于c# - 无法通过 C# 代码在我们的一台服务器上运行 PowerShell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740133/