Die Erfassung Powershell-Ausgabe in C# nach der Pipeline.Invoke wirft
Bin ich mit einem Powershell test-Skript aus einem C# - Anwendung. Das Skript kann fehlschlagen, aufgrund einer schlechten cmdlet die Ursachen Rohr.Invoke() eine exception werfen.
Ich bin in der Lage, erfassen alle Informationen, die ich brauche über die Ausnahme, aber ich würde gerne in der Lage sein, um die Anzeige der Skript-Ausgabe bis zu diesem Punkt. Ich habe nicht hatte kein Glück, da die Ergebnisse wird zu null, wenn eine Ausnahme geworfen wird.
Gibt es etwas, was ich bin fehlt? Danke!
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?
}
InformationsquelleAutor Nick A | 2009-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob dies hilfreich ist. Ich vermute, Sie läuft V1. Das V2-Ansatz nicht werfen und druckt das Ergebnis:
InformationsquelleAutor Doug Finke
Die Lösung, die ich letztendlich benutzt wurde, um die Umsetzung unserer eigenen PSHost zu handhaben PowerShell-Ausgabe. Die ersten Informationen kamen dabei aus http://community.bartdesmet.net/blogs/bart/archive/2008/07/06/windows-powershell-through-ironruby-writing-a-custom-pshost.aspx in der "erstellen einer benutzerdefinierten PS host" Abschnitt.
In meinem Fall es Tat erfordern die Verwendung einer benutzerdefinierten PSHostRawUserInterface als gut.
Hier ist der schnelle überblick über das, was geschehen war. Ich habe nur aufgelistet, die Funktion habe ich tatsächlich implimented, aber es gibt viele, die sind nur enthalten throw new NotImplementedException();
InformationsquelleAutor Nick A
Ich habe das gleiche problem. Der einfachste Weg, um Ausgabe, wenn die pipe.Invoke() wirft eine Ausnahme ist die Verwendung Invoke(IEnumerable input, IList Ausgabe)
Beispiel zeigt, wie alle Ausgabe, Fehler, schwinden usw. in der richtigen Reihenfolge
PowerShell-Skript
C#
InformationsquelleAutor Jan Smuda