Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu]Comment peut-on tuer toutes les instances de Wscript.exe ?
Auteur Message
Répondre en citant
Message [Résolu]Comment peut-on tuer toutes les instances de Wscript.exe ? 
Salut Smile
Ma Question : Comment peut-on tuer toutes les instances de "Wscript.exe" sauf une qui est lancée par mon script VBS ?
J'ai commencé à faire un petit script, mais je suis bloqué au niveau de la ligne 19 Erreur de syntaxe
Code:
Set oWMISrvc = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")

sProcName = Mid(wsh.fullname, InstrRev(wsh.fullname, "\") + 1)

Set cProcesses = oWMISrvc.ExecQuery( _
"select * from win32_process where Name = '" & sProcName & "'")

For Each oProcess in cProcesses
   If Instr(lcase(oProcess.Commandline), lcase(wsh.scriptname)) < 0 Then
      wsh.echo oProcess.Commandline
      wsh.echo wsh.scriptname
   else
      Process2kill = Mid(oProcess.CommandLine,InStr(oProcess.CommandLine,""" """) + 2)
      Process2kill = Replace(Process2kill,chr(34),"")
      msgbox Process2kill
      Set colItems = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process " _
      & "where commandline like '" & Process2kill &"'",,48)
      For Each objItem in colItems
         Wscript.Echo "Terminating script with this CommandLine: " & objItem.CommandLine
         objItem.Terminate()
      Next
   End If
Next
msgbox "ok"





______________________________________________________
Mes Contributions en Téléchargement
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu]Comment peut-on tuer toutes les instances de Wscript.exe ? 
En fait tu dois déterminer premièrement le PID de ton propre processus.

Pour ce faire tu peux utiliser les 2 exemples suivant :


Exemple 1 :

Credit Kul-Tigin

Code:

Function CurrProcessId
    Dim oShell, sCmd, oWMI, oChldPrcs, oCols, lOut
    lOut = 0
    Set oShell  = CreateObject("WScript.Shell")
    Set oWMI    = GetObject(_
        "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Randomize
    sCmd = "/K @echo " & Int(Rnd * 3333) * CDbl(Timer) \ 1
    oShell.Run "%comspec% " & sCmd, 0
    WScript.Sleep 100 'For healthier skin, get some sleep
    Set oChldPrcs = oWMI.ExecQuery(_
        "Select * From Win32_Process Where CommandLine Like '%" & sCmd & "'", ,32)
    For Each oCols In oChldPrcs
        lOut = oCols.ParentProcessId 'get parent
        oCols.Terminate 'process terminated
        Exit For
    Next
    Set oChldPrcs = Nothing
    Set oWMI = Nothing
    Set oShell = Nothing
    CurrProcessId = lOut
End Function

WScript.Echo CurrProcessId




Exemple 2 ;

Une autre Solution un peu plus Courte :

Code:
Dim iMyPID : iMyPID = GetObject("winmgmts:root\cimv2").Get("Win32_Process.Handle='" & CreateObject("WScript.Shell").Exec("mshta.exe").ProcessID & "'").ParentProcessId
msgBox iMypid



Ensuite tu boucle sur tous les PID des Wscript.exe en cours d'utilisation :

Code:

Set objSWbemServices = GetObject ("WinMgmts:Root\Cimv2")
Set colProcess = objSWbemServices.ExecQuery _
("Select * From Win32_Process where name = 'wscript.exe'")
For Each objProcess In colProcess
    WScript.Echo objProcess.ProcessId
Next


et tu fais un simple test IF (si le PID n'est pas égal au tien tu Kill)

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [Résolu]Comment peut-on tuer toutes les instances de Wscript.exe ? 
Salut SACHA et merci pour aide Okay
Bon j'ai trouvé une solution très simple dans un forum anglais, je vous la partage et le problème est ainsi résolu comme ceci :
avec une simple boucle et un filtre Okay
Code:
Set wmi = GetObject("winmgmts:root\cimv2")
Set cProcesses = wmi.ExecQuery("select * from win32_process where Name like '%wscript.exe%' AND NOT commandline like '%" & wsh.scriptname & "%'")
 
For Each oProcess in cProcesses
    wsh.echo oprocess.commandline
    oProcess.Terminate()
Next





______________________________________________________
Mes Contributions en Téléchargement
Message [Résolu]Comment peut-on tuer toutes les instances de Wscript.exe ? 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch