.NET 执行 PowerShell 脚本40


在 .NET 应用程序中执行 PowerShell 脚本是一种强大且灵活的自动化方式。通过使用 程序集,您可以无缝地从代码中利用 PowerShell 的丰富功能。

先决条件

要执行 PowerShell 脚本,您需要:
安装 .NET Core 3.1 或更高版本
安装 PowerShell Core 7.0 或更高版本

执行 PowerShell 脚本

要从 .NET 代码执行 PowerShell 脚本,请执行以下步骤:
使用 using ; 引入 程序集。
创建 PowerShell 类的实例,它允许您与 PowerShell 引擎进行交互。
使用 AddScript() 方法将 PowerShell 脚本添加到引擎中。
使用 Invoke() 方法执行脚本。

using System;
using ;
namespace PowerShellExample
{
class Program
{
static void Main(string[] args)
{
// 创建 PowerShell 实例
using (PowerShell powerShell = ())
{
// 添加 PowerShell 脚本
("Get-Process | Select-Object Name, Id");
// 执行脚本
Collection output = ();
// 遍历结果
foreach (PSObject result in output)
{
($"{["Name"].Value} ({["Id"].Value})");
}
}
}
}
}

使用脚本文件

如果您有需要执行的现有 PowerShell 脚本文件,您可以使用 AddCommand() 方法添加该文件。("C:path\to\script.ps1");

传递参数

您可以通过使用 AddParameter() 方法传递参数给脚本:("Name", "John");

获取结果

要检索脚本输出的结果,请使用 Invoke() 方法并获取 PowerShell 对象的集合。

您可以使用 Members 属性访问每个 PowerShell 对象的属性和方法。例如,要访问过程的名称和 ID,可以使用:string processName = ["Name"].Value;
int processId = (int)["Id"].Value;

处理异常

如果脚本执行失败,Invoke() 方法将引发异常。您可以使用 try/catch 块来处理这些异常。try
{
// 执行脚本
Collection output = ();
}
catch (Exception ex)
{
// 处理异常
();
}

最佳实践

以下是一些使用 .NET 执行 PowerShell 脚本的最佳实践:
使用 try/catch 块处理异常。
使用 using 语句确保正确释放 PowerShell 实例。
传递安全且经过验证的参数。
不要直接在代码中嵌入脚本,而是使用文件或 AddScript() 方法。
考虑使用 PowerShell Core 7.0 或更高版本以获得更多功能和安全性。


使用 .NET 执行 PowerShell 脚本是自动化任务和利用 PowerShell 的强大功能的有力工具。通过理解 程序集并遵循这些最佳实践,您可以有效地从代码中集成 PowerShell。

2024-12-02


上一篇:VB 调用 PowerShell 脚本的详细指南

下一篇:如何利用 PowerShell 脚本自动化任务