无法在C#中通过管道传递Object来运行powershell命令

时间:2015-09-22 05:38:47

标签: c# powershell command pipeline

我想使用C#

运行以下PS cmd
Get-SCRunAsAccount -VMMServer VmmserverName -Name proName | Remove-SCRunAsAccount

我尝试过以下程序,但个人资料未被删除。当我在Powershell中运行上面的cmd时它工作,这意味着cmd没有问题。但不确定为什么RunAsAccount的Object没有在C#中传递管道。

我也试过在c#中使用管道运行Get-process | Sort-Object VM

帮助我,我在这里失踪了

        Pipeline pipeline = Runspace.CreatePipeline();            
        Collection<PSObject> results = null;
        string output = null;

        Command command = new Command("Get-SCRunAsAccount");            
        command.Parameters.Add("VMMServer", "VmmserverName");
        command.Parameters.Add("Name", "proName");

        Command command1 = new Command("Remove-SCRunAsAccount");

        pipeline.Commands.Add(command);
        pipeline.Commands.Add(command1);
        pipeline.Commands.Add("Out-String");          
        results = pipeline.Invoke(); 

1 个答案:

答案 0 :(得分:0)

您需要导入SCVMM cmdlet才能使用它们:

pipeline.Commands.Add("Import-Module").AddParameter("Name","VirtualMachineManager");