Как преобразовать конвейерный ForEach-Object в C# - PullRequest
2 голосов
/ 02 апреля 2020

Я новичок в 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.

Может кто-нибудь помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...