正在尝试在C#中运行powershell脚本

本文关键字:运行 powershell 脚本 | 更新日期: 2023-09-27 17:59:46

我有一个添加防火墙规则的PS脚本。

我正在使用Process.Start("powershell.exe","-File"+"''"C:''Program Files(x86)''bah''bah''add-FirewallRule.ps1 ''");

这个命令在我的本地机器上运行良好,但在测试中,我一直在Windows Server 2008 R2上运行该程序,PS脚本不会运行。如果我从命令行手动运行它,它会运行并正常工作,但我的代码无法工作。所有的文件路径都是正确的(我已经检查过了,并让同事检查过)。当我运行代码时,PS控制台甚至不会弹出。

有什么建议吗?

正在尝试在C#中运行powershell脚本

由于您使用C#,我建议您使用PowerShell Invoke API,而不是Process.Start。API易于使用,希望能更好地指示问题所在。

事实证明,我没有考虑到在64位系统上运行32位应用程序导致的自动重定向。因此,我所要做的就是进入并为32位版本的powershell设置适当的执行策略。

您尝试过以管理员身份运行吗?我认为Process.Start需要提升的权限,而这些权限在沙箱模式下是不可用的。