2017-04-14 5 views
0

Windowsフォームからpstoolを実行します。 私はコードを試してみました:C#を実行してフォームから

   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はで受け入れられている引数はそうのように、引数のプロパティに行くことができます:

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

あなたはもはやあなたのバックスラッシュをエスケープする必要がverbatim string後にしているしないことを一度あなたが@で示さ覚えておいてください。

+0

ありがとうございます!!!!!!!!! –

関連する問題