2017-04-14 44 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

非常感謝你!!!!!!!!! –