如何将流水线ForEach对象转换为C#

如何将流水线ForEach对象转换为C#,c#,powershell,C#,Powershell,我是PowerShell的新手,正在尝试将以下行转换为C代码: return-not(-not(Get User$User-Company$Company-GroupName:$GroupName-AsJob | Wait Job |%{$| Receive Job-ErrorAction SilentlyContinue;$| Remove Job;}).ExternalUserId) 上面的代码相当复杂,所以现在我只想把上面的这一部分转换成C代码: Get User$User-Company

我是PowerShell的新手,正在尝试将以下行转换为C代码:

return-not(-not(Get User$User-Company$Company-GroupName:$GroupName-AsJob | Wait Job |%{$| Receive Job-ErrorAction SilentlyContinue;$| Remove Job;}).ExternalUserId)

上面的代码相当复杂,所以现在我只想把上面的这一部分转换成C代码:

Get User$User-Company$Company-GroupName:$GroupName-AsJob | Wait Job |%{$| Receive Job-ErrorAction SilentlyContinue;$| Remove Job;}

到目前为止,我掌握的代码如下:

using (var psShell = PowerShell.Create())
            {
                using (var remoteRunspace = RunspaceFactory.CreateRunspace(CreateSession()))
                {
                    remoteRunspace.Open();
                    psShell.Runspace = remoteRunspace;

                    PSCommand command = new PSCommand();

                    command.AddCommand("Get-User")
                        .AddArgument("someUser")
                        .AddParameter("Company", "someCompany")
                        .AddParameter("GroupName:someGroupName")
                        .AddParameter("AsJob");

                    command.AddCommand("Wait-Job");

                    ///Need to add code for third pipelined command here

                    psShell.AddCommand(command);
                    psShell.Invoke();
                    command.Clear();

                }
            }
如您所见,我只将前两个流水线命令转换为C#。我只是不知道如何转换最后一个并将其添加到上面的代码中,即此代码:

%{$\u124;接收作业-错误操作SilentlyContinue;$\u124;删除作业;}

我知道
%
ForEach Object
相同,
$\u
$PSItem
相同,但我仍然不知道如何在一组管道化的C#powershell命令中添加for循环


有人能帮忙吗?

作为一般指针:您可以使用
.AddScript()
SDK方法按原样执行PowerShell代码。更具体地说:考虑到作业的同步使用,为什么要使用作业?如果您的问题是ForEach循环,请检查这个问题