PsExec umleiten der Ausgabe und Fehler erzeugt, indem der Befehl nicht funktioniert

Ich habe eine Konsolenanwendung, die nicht mit diesem

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("out");
        Console.Error.WriteLine("err");
        Environment.ExitCode = 5;
    }
}

Wenn ich oben in der cmd-Eingabeaufforderung bekomme ich folgende

C:\>C:\pstools\test\outnerr.exe >C:\pstools\test\out1.log 2>C:\pstools\test\err1.log
C:\>echo %errorlevel%
5
C:\>type C:\pstools\test\out1.log
out
C:\>type C:\pstools\test\err1.log
err
C:\>

das ist, was erwartet wird.

Nun, wenn ich dies ausführen im Fenster Ausführen

cmd /c C:\pstools\test\outnerr.exe >C:\pstools\test\out2.log 2>C:\pstools\test\err2.log

Funktioniert das auch und schafft out2.anmelden und err2.log.

Nun, wenn, Wenn ich mit psexec ausführen die gleichen. Ich möchte eine log-Datei erstellen. Es spielt keine Rolle, wenn es erstellt auf dem lokalen Computer oder remote-Maschine.
Also habe ich diesen Befehl ausführen

C:\pstools\test\psexec.exe \\127.0.0.1 cmd /c C:\pstools\test\outnerr.exe >C:\pstools\test\out3.log 2>C:\pstools\test\err3.log

Diese nicht erstellen von log-Dateien, wenn Sie ausgeführt vom " Run " - Fenster. Aber gleiche funktioniert auch, wenn die Ausführung von der Eingabeaufforderung aus.

Was ich ändern muss in der oben zu machen, erstellen von log-Dateien aus Ausführen-Fenster ?

PS ich habe gelesen, dass viele threads hier und über das internet über die Umleitung Problem mit PsExec. Ich bin mir der Tatsache bewusst, dass PsExec manipuliert-streams für remote-Operationen interaktiv. Vielleicht ist das der Grund für diese einfache Sache nicht funktioniert.

InformationsquelleAutor Ankush | 2012-06-03
Schreibe einen Kommentar