Я новичок в 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#. Я просто не знаю, как преобразовать последний и добавить его в приведенный выше код, а именно этот:
%{ $_ | Receive-Job -ErrorAction SilentlyContinue; $_ | Remove-Job; }
Я знаю, %
совпадает с ForEach-Object
и $_
совпадает с $PSItem
, но я все еще не знаю, как добавить a для l oop внутри набора пайповых C# команд powershell.
Может кто-нибудь помочь?