2016-04-23 5 views
1

Ich versuche, Befehle zu RDP-Verbindungen aus einer C# Konsolenanwendung senden PsExec verwenden, ist dies der BefehlExterne Prozessausführung Argument Problem in C#

PsExec.exe //1.2.3.4 -u administrator -p secredpassword -c RemoteAppExe.exe 

weicht perfekt funktioniert, läuft RemoteAppExe.exe auf diesem System, das Problem ist das in C# es funktioniert nicht, hier ist mein Code:

Was ist das Problem? Ich nehme an, es könnte die Tatsache sein, dass die Argumente nicht richtig maskiert sind.

Irgendwelche Ideen?

Danke.

+0

Kann 'psexec.exe' von einem beliebigen Ordner ausgeführt werden? oder nur von einem bestimmten? Falls ja, versuchen Sie 'pProcess.StartInfo.WorkingDirectory' hinzuzufügen. – shlatchz

+0

aus einem beliebigen Verzeichnis. Ich habe versucht mit 'pProcess.StartInfo.WorkingDirectory =". ";', kein Ergebnis, es zeigt mir nur die Hilfe, als ob ich es ohne Parameter oder ungültige Parameter ausgeführt ... was zu tun ist? Ich habe auch ein Skript mit 'PHP' mit' EXEC' gemacht und es funktioniert reibungslos ... warum nicht C#? Was ist das Problem? – Damian

+0

Haben Sie versucht, es ohne alle Zeilen auszuführen, die das Fenster verbergen? Nur mit den Parametern Dateiname & Argumente? Oder vielleicht hat es mit administrativen Rechten zu tun. Versuchen Sie, Visual Studio mit Administratorrechten auszuführen. – shlatchz

Antwort

0

es sein sollte:

pProcess.StartInfo.Arguments = @"\\1.2.3.4 -u administrator -p secredpassword -c RemoteAppExe.exe"; 

ändern das Argument Zeile für mich den Code Arbeit gemacht.

+0

dosent Arbeit, ich versuchte '@" \\ .... 'und' @ "// ...', einfach die Hilfe drucken, als ob ich ohne Parameter laufen würde ... – Damian

+0

Ich habe 'PsExec.exe' auch von' System32' in einen anderen Ordner verschoben, weil Wenn die 'PsExec.exe' in' System32' war, hat das Programm eine Exception geworfen, dass die exe nicht gefunden wurde. Ich habe auch einen vollständigen Pfad für die 'RemoteAppExe.exe' eingegeben. – shlatchz