Hallo,
ich möchte auf einem Solaris Server ein Script ausführen um die Informationen der Scriptausgabe zu bekommen. Nach dem ich ein bisschen gegooglet habe bin ich auf
sharpSSH gestoßen. Allerdings konnte ich keine Befehle absetzen. Deshalb hab ich weiter geschaut und versuche gerade die Umsetzung anhand von plink Aufruf.
Auf meiner Konsole funktioniert das fein:
Zitat: |
C:\>"C:\Program Files\plink.exe" -load "application server" "echo blub"
blub |
Wenn ich nun aber einen .NET Process starte und die StandardAusgabe auslesen möchte, bekomme ich den Fehler:
Unable to read from standard input: Das Handle ist ungültig. (Mit Arguments="-V"; (für Version) oder ohne Arguments funktioniert es wie gewünscht.
Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo = new ProcessStartInfo{ FileName = @"C:\Program Files\plink.exe",
Arguments = "-load \"application server\" \"echo blub\"", RedirectStandardError = true, RedirectStandardOutput = true, UseShellExecute = false };
if (p.Start()) { string error = p.StandardError.ReadToEnd(); string output = p.StandardOutput.ReadToEnd();
p.WaitForExit(); Console.WriteLine("Error: " + error); Console.WriteLine("Output: " + output); } else { Console.WriteLine("could not start process"); } |
Ich bin offen für andere Vorschläge. Wenn ihr mir bei diesem Fehler weiter helfen könnte wäre ich aber auch schonmal dankbar.
Gruß,
Daniel
PS: Habe keine passendere Sparte gefunden, da es sich mit mehreren überschnitten hat (IO&Netzwerk&Basistechnologie).
Edit: Zur Klarstellung ich bekomme keine Exception sondern im
string error steht: Unable to read from standard input: Das Handle ist ungültig.