How can i kill all instances of "Wscript.exe" exept one ?

Anything VBScript-related, including Windows Script Host, WMI, ADSI, and more.
Forum rules
Do not post any licensing information in this forum.

Any code longer than three lines should be added as code using the 'Select Code' dropdown menu or attached as a file.
Locked
User avatar
hackoo
Posts: 103
Joined: Sat Jan 22, 2011 12:27 am

How can i kill all instances of "Wscript.exe" exept one ?

Post by hackoo » Fri Nov 08, 2013 4:08 pm

Hi ;)
Please i need some help to solve my issue !
so the question is : How can i kill all instances of "Wscript.exe" exept one that is started by my VBS ?
I made this script , but i get an error at line 19
VBScript Code
Double-click the code block to select all.
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"
Thank you !

User avatar
jvierra
Posts: 13725
Joined: Tue May 22, 2007 9:57 am
Contact:

Re: How can i kill all instances of "Wscript.exe" exept one

Post by jvierra » Fri Nov 08, 2013 5:53 pm

Just takes one simple loop and a filter.
VBScript Code
Double-click the code block to select all.
Set wmi = GetObject("winmgmts:root\cimv2")
Set cProcesses = wmi.ExecQuery("select * from win32_process where Name like '%cscript.exe%' AND NOT commandline like '%" & wsh.scriptname & "%'")

For Each oProcess in cProcesses
    wsh.echo oprocess.commandline
    oProcess.Terminate()
Next
That is all.

Change cscript.exe to wscript.exe if that is what you are usung - you shouldn't be using that.

User avatar
hackoo
Posts: 103
Joined: Sat Jan 22, 2011 12:27 am

Re: How can i kill all instances of "Wscript.exe" exept one

Post by hackoo » Fri Nov 08, 2013 6:12 pm

Thank you !
Works like a charm :D

Locked