tuer un processus sur un ordi distant

tuer un processus sur un ordi distant - Shell/Batch - Programmation

Marsh Posté le 12-06-2006 à 18:02:43    

Bonjour,
 
Je souhaite pouvoir tuer le processus à l'origine d'un logiciel appelé cassopiee sur des ordinateurs distants...et ce, grâce à l'utilitaire pskill.
 
pskill [\\computer [-u username [-p password]]] <process Id or name>
 
J'ai testé en utilisant le nom du processus mais ça ne marchait pas.
 
La solution était donc de prendre l'id du processus.
Or, l'id change d'une change du machine à une autre, d'où la nécessité de dresser la liste des processus en cours puis d'extraire l'id du processus grâce à l'outil pslist.
 
Voici donc le code:

Code :
  1. pslist | find "cassiopee" > cassiopee_process.txt


 
le résultat ds cassiopee_process est le suivant:

Code :
  1. cassiopee            1272   8  22  856  95264     0:49:40.625     7:53:40.935


 
Il ne me reste plus qu'à extraire de ce fichier l'id du processus qui est 1272 et ce, grâce au système de jeton.
Or, je ne vois pas comment effectuer ma boucle... (tokens=2, je crois en tt cas...)
 
si qqn pouvait m'éclairer!
 
merci!

Reply

Marsh Posté le 12-06-2006 à 18:02:43   

Reply

Marsh Posté le 13-06-2006 à 00:28:52    

Code :
  1. for /f "tokens=1,2,*" %i in (cassiopee_process.txt) do set PID=%j

Reply

Marsh Posté le 13-06-2006 à 00:30:24    

sous win XP et win2003 tu peux également utiliser taskkill :

Code :
  1. taskkill /S ordi_distant /IM cassiopee

Reply

Marsh Posté le 13-06-2006 à 09:53:58    

merci mais je ne souhaite pas utilise le nom du processus mais son id. C ça mon problème!
 
merci qd même  
 
;)

Reply

Marsh Posté le 13-06-2006 à 09:55:46    

ah je suis désolé! je navais pas vu que tu avais répondu à ma question avant!
 
merci bcp!
 
:)

Reply

Marsh Posté le 13-06-2006 à 10:17:41    

heu...ça ne marche pas...
 
voici le script:
 

Code :
  1. @echo off
  2. pslist | find "expl">processus_pacddaf.txt
  3. for /f "tokens=1,2,*" %i in (processus_pacddaf.txt) do set PID=%j
  4. echo %PID%
  5. pause


 
comment spécifier que le délimiteur est un espace dans for /f "tokens=1,2,* delims=[espace]"
 
merci!

Reply

Marsh Posté le 13-06-2006 à 10:28:16    

si tu l'utilises dans un .bat il faut doubler les %

Code :
  1. @echo off
  2. pslist | find "expl">processus_pacddaf.txt
  3. for /f "tokens=1,2,*" %%i in (processus_pacddaf.txt) do set PID=%%j
  4. echo %PID%
  5. pause

Reply

Marsh Posté le 13-06-2006 à 10:32:04    

merci couak !
 
:)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed