从另一个PowerShell cmdlet调用C#powershell cmdlet

时间:2012-12-05 11:51:53

标签: c# powershell-v2.0

以下是我的场景:我有add-data和add-bulkdata cmdlet,两者都是用pscmdlet派生的C#编写的,add-bulkdata带有一个csv文件,每行都被送到add-data cmdlet。添加数据cmdlet可能会抛出终止异常,如果确实如此,我不知道如何在add-bulkdata cmdlet中接收它,在bulkdata cmdlet中我得到commandinvocationexception但它没有ErrorRecord底层添加数据已经设定。此外,如果我查询pipeline.errors它没有给我任何信息。

处理此类情况的最佳方法是什么?

我的Add-Bulkdata ProcessRecord()函数看起来像这样:

InitialSessionState initial = InitialSessionState.CreateDefault();
initial.ImportPSModule(new[] { @"C:\mybinary.dll" });
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
runspace.Open();

Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(cmd); //cmd is add-data cmdlet
pipeline.Commands.Add("out-string"); // I have tried with and without this

Collection<PSObject> results = pipeline.Invoke();
Collection<object> errors = pipeline.Error.ReadToEnd();

0 个答案:

没有答案