Używam skryptu testowego PowerShell z aplikacji C#. Skrypt może się nie powieść z powodu złego polecenia cmdlet, które powoduje, że pipe.Invoke() zgłasza wyjątek.Przechwytywanie danych wyjściowych powłoki Powderhell w języku C# po potoku Pipeline.Invoke
Jestem w stanie zebrać wszystkie informacje, których potrzebuję o wyjątku, ale chciałbym móc wyświetlić wyniki skryptu do tego momentu. Nie miałem szczęścia, ponieważ wyniki okazały się zerowe, gdy został zgłoszony wyjątek.
Czy jest coś, czego mi brakuje? Dzięki!
m_Runspace = RunspaceFactory.CreateRunspace();
m_Runspace.Open();
Pipeline pipe = m_Runspace.CreatePipeline();
pipe.Commands.AddScript(File.ReadAllText(ScriptFile));
pipe.Commands.Add("Out-String");
try {
results = pipe.Invoke();
}
catch (System.Exception)
{
m_Runspace.Close();
// How can I get to the Powershell output that comes before the exception?
}
Niezły, dokładnie tego, czego szukałem. Dzięki. –