在C#中使用PowerShell主机来执行PowerShell脚本并获取输出,可以通过System.Management.Automation
命名空间中的类来实现。以下是一个基本的示例,展示了如何创建一个PowerShell运行环境,执行脚本,并捕获输出。
using System;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
class Program
{
static void Main()
{
// 创建一个运行空间配置
RunspaceConfiguration runspaceConfig = RunspaceConfiguration.Create();
// 创建一个PowerShell运行空间
using (Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfig))
{
// 打开运行空间
runspace.Open();
// 创建一个PowerShell脚本
string script = @"
Get-Process | Select-Object ProcessName, Id, CPU, WorkingSet
";
// 创建一个PowerShell对象
using (PowerShell powershell = PowerShell.Create())
{
// 设置脚本
powershell.AddScript(script);
// 执行脚本并捕获输出
Collection<PSObject> results = powershell.Invoke();
// 遍历结果并打印
foreach (PSObject result in results)
{
Console.WriteLine("Process Name: " + result.Members["ProcessName"].Value);
Console.WriteLine("Process ID: " + result.Members["Id"].Value);
Console.WriteLine("CPU: " + result.Members["CPU"].Value);
Console.WriteLine("Working Set: " + result.Members["WorkingSet"].Value);
Console.WriteLine();
}
}
}
}
}
通过上述代码和解释,你应该能够在C#中使用PowerShell主机来执行脚本并获取输出。如果遇到具体的问题,可以根据错误信息进一步调试和解决。
领取专属 10元无门槛券
手把手带您无忧上云