サーバーでpsexecを使用して、別のサーバーでexeファイルを実行しています。他のexeにパラメータを渡すにはどうすればよいですか?
サーバーで実行しているexeはpsexecであり、psexecは別のシステムにあるvmtoolsd.exeという名前のexeを実行する必要があります。パラメータをvmtoolsd.exeに渡すにはどうすればよいですか?また、どこに渡すのですか? info.Argumentsの一部として渡しますか?私はそれを試しましたが、機能していません。
ProcessStartInfo info = new ProcessStartInfo(@"C:\Tools");
info.FileName = @"C:\Tools\psexec.exe";
info.Arguments = @"\\" + serverIP + @"C:\Program Files\VMware\VMwareTools\vmtoolsd.exe";
Process.Start(info);
また、info.Argumentsの一部として、vmtoolsd.exeのパスの前にIPアドレスを付け、その後にドライブパスを付ける必要がありますか?
以下のコードが役立つことを願っています。
最初の.exeからのコード:
Process p= new Process();
p.StartInfo.FileName = "demo.exe";
p.StartInfo.Arguments = "param1 param2";
p.Start();
p.WaitForExit();
or
Process.Start("demo.exe", "param1 param2");
Demo.exeのコード:
static void Main (string [] args)
{
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
}
.exeファイルを右クリック->ショートカットに移動->ターゲットタブで引数を右端に記述...私の場合は機能しました
次の投稿でそれを見ることができます(@AndyMcCluggageによる回答):
_using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.
_
MSDNで確認できるように、はるかに多くの制御を提供しますが、基本的に、引数の制御は、文字列でプロパティを変更するだけで、非常に簡単です。
更新:上記のスニペットコードを使用すると、以下に基づいてPsExecを起動することになります。
使用する必要のある形式は次のとおりです。
_psexec @run_file [options] command [arguments]
_
ここで:arguments Arguments to pass (file paths must be absolute paths on the target system)
。
開始するプロセスはpsexec
であるため、_process.StartInfo.Arguments
_に、必要なすべてのパラメーターを単一のチェーンに配置する必要があります:_@run_file [options] command [arguments]
_。