我有一个添加防火墙规则的PS脚本。
我正在使用Process.Start(“powershell.exe”,“ - File”+“\”C:\ Program Files(x86)\ blah \ blah \ add-FirewallRule.ps1 \“”);
此命令在我的本地计算机上运行正常,但在测试中我一直在Windows Server 2008 R2上运行该程序,并且PS脚本将无法运行。如果我从命令行手动运行它,它运行并正常工作,但我的代码将无法正常工作。所有文件路径都是正确的(我已经检查过并且有一个同事检查它)。当我运行代码时,PS控制台甚至不会弹出。
有什么建议吗?
答案 0 :(得分:11)
由于您使用的是C#,我建议使用PowerShell Invoke API而不是Process.Start。该API易于使用,希望能更好地指示出现问题。
答案 1 :(得分:3)
事实证明,我没有考虑在64位系统上运行32位应用程序导致的自动重定向。所以我所要做的就是进入并为32位版本的powershell设置适当的执行策略。
答案 2 :(得分:0)
您是否尝试过以管理员身份运行?我相信Process.Start需要提升权限,例如沙盒模式中不可用。