2017-03-16 1 views
0

J'ai essayé d'appeler un fichier .cmd à distance à travers WMI en C# avec le code ci-dessous:Comment démarrer un script (.cmd) avec WMI en code C#?

ObjectGetOptions objectGetOptions = new ObjectGetOptions(); 
ManagementPath managementPath = new ManagementPath("Win32_Process"); 
ManagementClass processClass = new ManagementClass 
      (manScope, managementPath, objectGetOptions); 
ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); 
     inParams["CommandLine"] = @"C:\temp\text.cmd"; 

Au-dessus de code renvoyé aucune erreur, il ID de processus même obtenu avec outparams [ "processId"] Cependant, il didn Ne faites rien au serveur distant. J'ai ensuite essayé d'appeler un script vbs avec la même procédure et cela a très bien fonctionné. Donc ma question est, quelle est la bonne façon d'appeler un fichier .cmd via WMI? Pour vbs, je savais que je devrais inclure la commande CScript. Mais qu'en est-il du fichier .CMD?

Merci d'avance.

Répondre

0

Vous devriez essayer d'exécuter "cmd.exe/c c: \ temp \ text.cmd". Je pense que vous devez appeler le processeur de commande pour le faire fonctionner.

+0

Merci pour votre réponse. – worrow

+0

J'ai suivi votre suggestion mais le script n'a toujours rien fait. Cependant, après avoir mis le fichier dans Windows/system32 sans spécifier l'emplacement du fichier dans le code, cela fonctionne enfin! J'ai essayé de définir le paramètre inParams ["CurrentDirectory"] ailleurs, mais cela ne fonctionne pas. – worrow

+0

J'ai tout compris. Avec la suggestion ci-dessus plus le paramètre "CurrentDirectory" et maintenant cela fonctionne! Merci pour votre aide, Palle. – worrow