Как завершить процесс с помощью VBScript

У меня есть этот код VBScript для завершения одного процесса

  Const strComputer = "." 
  Dim objWMIService, colProcessList
  Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")
  Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'Process.exe'")
  For Each objProcess in colProcessList 
    objProcess.Terminate() 
  Next  

он отлично работает с некоторыми процессами, но когда дело доходит до любого процесса, запущенного в системе, он не может остановить его.

есть ли что-нибудь, что мне нужно добавить, чтобы убить процесс в системе?

1 ответов


способ, которым я получил это, чтобы работать в прошлом, используя С pskill от Sysinternals от Microsoft. PsKill может завершать системные процессы и любые процессы, которые заблокированы.

вам нужно загрузить исполняемый файл и поместить его в тот же каталог, что и скрипт, или добавить его путь в WshShell.Exec вызов. Вот ваш пример кода изменен на использование PsKill.

Const strComputer = "." 
Set WshShell = CreateObject("WScript.Shell")
Dim objWMIService, colProcessList
Set 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