J'utilise psexec sur mon serveur pour exécuter un fichier exe sur un autre serveur. Comment puis-je passer des paramètres à l'autre exe?
Le fichier exe que j’exécute sur mon serveur est psexec, qui doit à son tour exécuter le fichier exe nommé vmtoolsd.exe situé sur un autre système. Comment passer des paramètres à vmtoolsd.exe? Aussi, où est-ce que je le passe? Aurais-je le passer dans le cadre de l'info.Arguments? J'ai essayé ça mais ça ne marche pas.
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);
En outre, dans le cadre de info.Arguments, devrais-je préfacer le chemin de vmtoolsd.exe avec l'adresse IP, suivie du chemin du lecteur?
J'espère que le code ci-dessous peut aider.
Code du premier fichier .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");
Code dans demo.exe:
static void Main (string [] args)
{
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
}
Faites un clic droit sur le fichier .exe -> raccourci goto -> dans l'onglet cible, écrivez l'argument à l'extrême droite ... Dans mon cas, cela a fonctionné.
Vous pouvez le voir dans le post suivant (réponse de @AndyMcCluggage):
Comment démarrer un processus à partir de C #?
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.
Comme vous pouvez le constater dans MSDN, il offre beaucoup plus de contrôle, mais en principe, le contrôle des arguments est assez simple, comme vous pouvez le constater: il suffit de modifier une propriété avec une chaîne.
Mise à jour: Depuis le code de code ci-dessus, vous lanceriez PsExec, sur la base de:
Le format que vous devez utiliser est:
psexec @run_file [options] command [arguments]
Où: arguments Arguments to pass (file paths must be absolute paths on the target system)
.
Étant donné que le processus que vous démarrez est psexec
, dans le process.StartInfo.Arguments
, vous devez mettre tous les paramètres nécessaires, dans une chaîne sigle: @run_file [options] command [arguments]
.