如何从 C# 程序运行 PowerShell 脚本?
Posted
技术标签:
【中文标题】如何从 C# 程序运行 PowerShell 脚本?【英文标题】:How to run a PowerShell script from a C# program? 【发布时间】:2018-10-10 14:18:50 【问题描述】:我有一个 PowerShell 脚本,它接受用户输入作为用户凭据。它会提示一个窗口,要求输入用户名和密码。我想使用 C# 运行这个脚本。我该怎么做?
【问题讨论】:
我们不是千里眼。请将您的代码作为文本复制/粘贴到问题中。选择代码文本并使用
图标。请制作一个 MCVE。 ***.com/help/mcve
【参考方案1】:
您需要添加对System.Management.Automation
程序集* 和System.Collections.Objectmodel
的项目引用(用于执行输出)。
然后您需要为 PowerShell 类创建一个静态方法(注意:PowerShell 类实现了IDisposable
,因此您需要将其包装在 using 块中):
using (PowerShell PowerShellInstance = PowerShell.Create())
使用添加脚本方法(PowerShellInstance.AddScript())
添加您的脚本。
从那里您可以分别使用.Invoke()
和.BeginInvoke()
同步或异步执行脚本。
在此处参考此 MSDN 博客:https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/
【讨论】:
以上是关于如何从 C# 程序运行 PowerShell 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 C# 中的 powershell 脚本中捕获退出代码
c# - 如何在运行时从模块代码中获取 PowerShell 模块版本
从 PowerShell 调用时无法在 dll 中转换透明代理,但在 C# 控制台应用程序中成功