How to terminate process using VBScript
The way I have gotten this to work in the past is by using PsKill from Microsoft's SysInternals. PsKill can terminate system processes and any processes that are locked.
You need to download the executable and place it in the same directory as the script or add it's path in the WshShell.Exec call. Here's your sample code changed to use PsKill.
Const strComputer = "." Set WshShell = CreateObject("WScript.Shell")Dim objWMIService, colProcessListSet objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Process.exe'")For Each objProcess in colProcessList WshShell.Exec "PSKill " & objProcess.ProcessId Next
Try explicit assert debug privilege {impersonationLevel=impersonate,(debug)}
:
Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(debug)}!\\.\root\CIMV2")Set procs = wmi.ExecQuery("SELECT * FROM Win32_Process WHERE Name='SearchIndexer.exe'", , 48)For Each proc In procs proc.TerminateNext