Где вывод "Write-Host" идет в Powershell System.Management.Automation Справочные сборки 4.0 - PullRequest
0 голосов
/ 30 августа 2018

Я использую System.Management.Automation со ссылочными сборками 4.0 с C # Мне нужно увидеть вывод Write-Host. Документация говорит, что Write-Host будет выведен в выходной поток. Каков выходной поток для получения вывода Write-Host в C # при использовании эталонных сборок powershell 4.0.

Я знаю, что информационный конвейер позже добавлялся в Powershell версии 5.0, а Write-Host и Write-Information всегда направляли вывод в информационный конвейер.

Но мне нужно увидеть выходные данные Write-Host с эталонными сборками для powershell 4.0. С помощью следующего кода я нигде не могу увидеть вывод Write-Host. Ни на выходе, ни в выходных коллекциях.

В настоящее время я подписался на следующие потоки.

using (var powerShell = PowerShell.Create(iss))
{           
            var psScript = "Write-Host test input";
            powerShell.AddScript(psScript);

            powerShell.Streams.Debug.DataAdding += OnDebugDataAdding; 
            powerShell.Streams.Error.DataAdding += OnErrorAdding;
            powerShell.Streams.Warning.DataAdding += OnWarningAdding;
            powerShell.Streams.Verbose.DataAdding += OnVerboseAdding;

            var outputCollection = new PSDataCollection<PSObject>();
            outputCollection.DataAdding += OnOutputDataAdding; // all spitted outputs getting into outputCollection

            powerShell.Invoke(null, outputCollection);
}
...