2017-04-14 29 views
0

我想从Windows窗体运行pstool。 我试图代码:C#从FORM运行PStool

   System.Diagnostics.Process process = new System.Diagnostics.Process(); 
       System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
       startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; 
       startInfo.FileName = "cmd.exe"; 
       startInfo.Arguments = @"C:\\PSTools\\PsExec.exe \\\\" + dnsName+" CMD"; 
       process.StartInfo = startInfo; 
       process.Start(); 

,但它打开命令皮棉,而不是运行命令: “C:\ PSTools \ PsExec.exe \\” + DNSNAME + “CMD”

我在做什么错误?

+0

你告诉它运行'cmd.exe',并试图让cmd执行一个命令。尝试执行你想要的程序,或者改变cmd参数来包含'/ k'。 – BurnsBA

+0

运行pstool的命令是:“c:\ pstool.exe \\ ip cmd” 如何将它写在参数上? –

+0

确定它正在工作。我将/ k加到参数中。 startInfo.Arguments = @“C:\\ PSTools \\ PsExec.exe \\\\”+ dnsName +“CMD”; –

回答

0

您可以通过将其exe文件设置为FileName来直接执行PsExec。由PSEXEC接受的参数可以去Arguments属性,像这样:

startInfo.FileName = @"C:\PSTools\PsExec.exe"; 
startInfo.Arguments = String.Format(@"\\{0} CMD", dnsName); 

请记住,一旦你与@表明你是一个verbatim string后,您不再需要逃避你回斜线。

+0

非常感谢你!!!!!!!!! –