Вернуть список из powershell в c# - PullRequest
0 голосов
/ 25 апреля 2020

Я использую приведенный ниже фрагмент кода для вызова сценария PowerShell из c#

            using (var powershell = PowerShell.Create())
            {
                // arg1 is Arraylist
                powershell.AddCommand("Invoke-Command")
                  .AddParameter("ComputerName", remoteComputer)
                  .AddParameter("FilePath", scriptPath)
                  .AddParameter("ArgumentList", new object[] { arg1 });

                psOutput = powershell.Invoke();
            }

Так выглядит сценарий powershell

Param([System.Collections.ArrayList]$Array)

$Failed =  New-Object -TypeName "System.Collections.ArrayList"

Function Get-CNF
{
    foreach ($n in $global:Array) {

        if( // Some condition)
        {
            $Failed.Add($n);
        }
    }
    return $Failed
}

Я не могу найти способ специально искать только возвращенное значение ArrayList, потому что я выполняю другую группу операций в файле сценария PowerShell, а возвращаемое значение psOutput содержит все из них, включая возвращенное значение $Failed. Как дифференцировать возвращаемое значение? Есть ли способ передать параметр в качестве ссылки из C# в PowerShell (я могу добавить свой список к указанному параметру), а затем использовать его в c# файле?

Я уже посмотрел кучу ответов здесь, в StackOverflow, но они не соответствуют моим требованиям, потому что мои выходные данные invoke включали другую группу выходных данных.

...