如何将流水线ForEach对象转换为C#
我是PowerShell的新手,正在尝试将以下行转换为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
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循环,请检查这个问题