C#中执行PowerShell 脚本

在C#中调用powershell脚本,需要引用的namespace如下:
using System.Management.Automation; using System.Management.Automation.Runspaces;
添加System.Management.Automation.dll的引用,需要使用浏览,如果不知道位置,可以先在本机查找下。
代码如下:
1 //RunPowershell(@".\x.ps1", ""); 2 private Collection RunPowershell(string filePath, string parameters) 3 { 4 RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create(); 5 Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration); 6 runspace.Open(); 7 RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace); 8 Pipeline pipeline = runspace.CreatePipeline(); 9 Command scriptCommand = new Command(filePath); 10 Collection commandParameters = new Collection(); 11 12 string[] tempParas = parameters.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 13 for (int i = 0; i < tempParas.Length; i += 2) 14 { 15 CommandParameter commandParm = new CommandParameter(tempParas[i], tempParas[i + 1]); 16 commandParameters.Add(commandParm); 17 scriptCommand.Parameters.Add(commandParm); 18 } 19 20 pipeline.Commands.Add(scriptCommand); 21 Collection psObjects; 22 psObjects = pipeline.Invoke(); 23 24 if (pipeline.Error.Count > 0) 25 { 26 throw new Exception("脚本执行失败"); 27 } 28 29 runspace.Close(); 30 31 return psObjects; 32 }
powershell脚本执行的结果存在Collection集合中。
Tags: 

延伸阅读

最新评论

发表评论