将C#pObject的集合传递到powershell管道

将C#pObject的集合传递到powershell管道,c#,powershell,runspace,psobject,C#,Powershell,Runspace,Psobject,我有一个C#pso对象的集合,我想将其传递给powershell脚本。我喜欢在管道中传递它,以便在psfile的process部分使用它 任何人都知道这是否可能,在这种情况下。我该怎么做 Collection<PSObject> colpsObject = new Collection<PSObject>(); PSObject obj1 = new PSObject(); obj1.Properties.Add(new PSNoteProperty("Name1", "

我有一个C#pso对象的集合,我想将其传递给powershell脚本。我喜欢在管道中传递它,以便在psfile的process部分使用它

任何人都知道这是否可能,在这种情况下。我该怎么做

Collection<PSObject> colpsObject = new Collection<PSObject>();
PSObject obj1 = new PSObject();
obj1.Properties.Add(new PSNoteProperty("Name1", "Value1"));
obj1.Properties.Add(new PSNoteProperty("Name2", "Value2"));
colpsObject.Add(obj1);

PSObject obj2 = new PSObject();
obj2.Properties.Add(new PSNoteProperty("Name1", "Value1"));
obj2.Properties.Add(new PSNoteProperty("Name2", "Value2"));
colpsObject.Add(obj2);

PowershellRunspace rs = new PowershellRunspace(); //Custom Powershell class
rs.Open();

Command cmd = new Command(m_Script);
cmd.Parameters.Add("Username", m_userName);
cmd.Parameters.Add("Password", m_password);

rs.Add(cmd);
rs.Execute();
Collection colpsObject=new Collection();
PSObject obj1=新PSObject();
obj1.Properties.Add(新的PSNoteProperty(“Name1”、“Value1”);
obj1.Properties.Add(新的PSNoteProperty(“Name2”、“Value2”);
colpsObject.Add(obj1);
PSObject obj2=新PSObject();
添加(新的PSNoteProperty(“Name1”、“Value1”);
添加(新的PSNoteProperty(“Name2”、“Value2”);
colpsObject.Add(obj2);
PowershellRunspace rs=新的PowershellRunspace()//自定义Powershell类
rs.Open();
Command cmd=新命令(m_脚本);
cmd.Parameters.Add(“用户名”,m_用户名);
cmd.Parameters.Add(“密码”,m_密码);
rs.Add(cmd);
rs.Execute();

我想出来了。不确定这是否是最好的方法,但它确实有效

Collection<PSObject> colpsObject = new Collection<PSObject>();
PSObject obj1 = new PSObject();
obj1.Properties.Add(new PSNoteProperty("Name1", "Value1"));
obj1.Properties.Add(new PSNoteProperty("Name2", "Value2"));
colpsObject.Add(obj1);

PSObject obj2 = new PSObject();
obj2.Properties.Add(new PSNoteProperty("Name1", "Value1"));
obj2.Properties.Add(new PSNoteProperty("Name2", "Value2"));
colpsObject.Add(obj2);

PowershellRunspace rs = new PowershellRunspace(); //Custom Powershell class
rs.Open();

Command cmd1 = new Command("param($Param1);$Param1",true);
cmd1.Parameters.Add("Param1", colpsObject);
rs.Add(cmd1);

Command cmd2 = new Command(m_Script);
cmd2.Parameters.Add("Username", m_userName);
cmd2.Parameters.Add("Password", m_password);
rs.Add(cmd2);

rs.Execute();
Collection colpsObject=new Collection();
PSObject obj1=新PSObject();
obj1.Properties.Add(新的PSNoteProperty(“Name1”、“Value1”);
obj1.Properties.Add(新的PSNoteProperty(“Name2”、“Value2”);
colpsObject.Add(obj1);
PSObject obj2=新PSObject();
添加(新的PSNoteProperty(“Name1”、“Value1”);
添加(新的PSNoteProperty(“Name2”、“Value2”);
colpsObject.Add(obj2);
PowershellRunspace rs=新的PowershellRunspace()//自定义Powershell类
rs.Open();
Command cmd1=新命令(“param($Param1);$Param1”,true);
cmd1.Parameters.Add(“Param1”,colpsObject);
rs.Add(cmd1);
命令cmd2=新命令(m_脚本);
cmd2.Parameters.Add(“用户名”,m_用户名);
cmd2.参数。添加(“密码”,m_密码);
rs.Add(cmd2);
rs.Execute();