c# - 无法通过 C# 代码在我们的一台服务器上运行 PowerShell 脚本

标签 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,我可以使用哪些代码来代替,您有什么好的示例吗?还有其他可以带来改变的政策吗?

提前致谢

最佳答案

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

Set-ExecutionPolicy Bypass -Force

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

关于c# - 无法通过 C# 代码在我们的一台服务器上运行 PowerShell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740133/

相关文章:

c# - 使用 iTextSharp 读取 PDF 文件附件注释

tsql - 无法使用 Transact SQL 脚本中的函数调用执行 powershell 文件

PowerShell 脚本参数作为数组传递

powershell - 如何通过 WMI 读取应用程序和服务日志?

powershell - 如何在没有换行符的情况下写入标准输出?

c# - 如何检测到 Windows VirtualStore 的文件重定向?

c# - EF Core 过滤器枚举存储为带有 LIKE 运算符的字符串

c# - 更复杂(现实生活)的模型绑定(bind)?

c# - 浮点范围的紧凑 LINQ 语法?

powershell - if-else 不在 powershell 脚本中执行