首页 > 解决方案 > 使用 Powershell 类在 c# 中运行 Powershell 脚本

问题描述

我知道这个问题被问了很多。但是没有一个解决方案对我有帮助。

我的脚本不会运行。当我使用 Powershell 执行它时,它可以工作。但不适用于此 C# 代码:

using (PowerShell ps = PowerShell.Create())
{
    ps.AddScript(@"& 'MyPathToTheScript'");
    ps.Invoke();
}

如您所见,我尝试了 AddScript 和 AddCommand,但都无法运行我的脚本。我按照我在 Microsoft Docs 上看到的说明进行操作:

添加和调用命令

除了我不需要任何参数:)

编辑#1

我的 PowerShell 脚本,需要以管理员身份运行。这可能是问题吗?脚本运行,但由于“访问被拒绝”而引发错误?

我可以从 C# 执行此操作,还是必须在脚本中添加它?

谢谢你的帮助 :)

标签: c#powershellinvokeexecute

解决方案


我没有使用 SDK,但如文档中所述,似乎包括AddScript创建命令管道在内的方法,Invoke应该在它们上调用。

所以也许你应该像下面这样使用它:

using (PowerShell ps = PowerShell.Create().AddScript("YourPathToTheScript"))
{
    ps.Invoke();
}

推荐阅读