2014-10-21 7 views
-1

Я пытаюсь выполнить команду на «psexec», передав ей некоторую переменную. Пробовал различные способы его выполнения, но все еще не смог его выполнить.Выполнение psexec из C# кода

Я хочу выполнить следующее с обработчиком событий кнопки.

private void button3_Click(object sender, EventArgs e) 
    { 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.EnableRaisingEvents = false; 
     proc.StartInfo.FileName = "psexec.exe"; //currently its in debug folder 
     proc.StartInfo.Arguments = "/c \\10.10.1.10 -u domain\test1 -p testpass " + "C:\\windows\\system32\\cmd.exe"; 
     proc.Start(); 

     // proc.WaitForExit(); 
     MessageBox.Show("Command Exected"); 


    } 
+2

побег, что вы передаете в .Arguments или '@"/c \\ 10 ... ' –

+0

Я уже пробовал это, но не имеет значения. –

+0

Это должно сделать мир различий. Первая часть строки компилируется только потому, что она включает в себя' t' после третья обратная косая черта, но это означает, что вы отправляете «домен» + [символ табуляции] + «est1». Я предполагаю, что это имеет значение для вашего звонка. – DonBoitnott

ответ

0

Я не знаю, C# хорошо, но вот рабочий код я использую, чтобы сделать очень похожую вещь в VB.NET:

Private Sub startProcess(ByVal remotePC As String, ByVal remotePC_URL As String, ByVal remoteUser As String, ByVal password As String) 
    Dim proc As New System.Diagnostics.Process 
    proc.StartInfo = New ProcessStartInfo("CMD") 
    proc.StartInfo.Arguments = "/k psexec \\" & remotePC & " -u " & remoteUser & " -p " & password & " -i -d ""C:\Program Files (x86)\Internet Explorer\iexplore.exe"" -k " & remotePC_URL & "" 
    proc.StartInfo.CreateNoWindow = True 
    proc.StartInfo.UseShellExecute = False 
    proc.Start() 
End Sub 'startProcess 
Смежные вопросы